我正在使用Selenium 2Java API和FirefoxDriver。当我填写表单时,复选框会根据表单的输入添加到页面。
我想使用Selenium来模拟点击这些复选框。元素在常规浏览器中可见且可用,但selenium断言这些元素不可见。
"Element is not currently visible and so may not be interacted with"
我可以强制selenium忽略元素的不可见状态吗?如何强制Selenium与不可见元素交互?
发布于 2012-04-23 13:33:17
有时,这意味着页面上有多个元素具有您试图搜索的相同属性,而您正在“与错误的元素交谈”。
如果您的元素不能由:id或:name (或:class)唯一标识,这可能很棘手。
有时,通过:xpath搜索元素会有所帮助,但在某些情况下,即使这样做也是不现实的。
在这些情况下,您可能必须获取符合条件的所有元素,并通过索引引用正确的元素。它很脏,但很管用。
我使用的是Ruby on Rails应用程序中的Selenium / Watir,因此在我的示例中,示例如下:
browser = Watir::Browser.new(:firefox, :profile => "default")
browser.goto("http://www.google.com/analytics")
# login
browser.divs(:text, "+ New Property").last.click
希望这能有所帮助。
发布于 2015-01-10 06:05:11
我也遇到过类似的问题,但它与元素在视口中不可见有关。我抓取了一个屏幕截图,发现浏览器窗口太窄,元素看不见。我做了其中的一个,它起作用了:
driver.maximize_window()
发布于 2015-08-12 16:53:37
或者,您可以使用Selenium Action Class来模拟用户交互--例如
WebDriver = new FirefoxDriver();
WebElement menu = driver.findElement(By.xpath("")); // the triger event element
Actions build = new Actions(driver); // heare you state ActionBuider
build.moveToElement(menu).build().perform(); // Here you perform hover mouse over the needed elemnt to triger the visibility of the hidden
WebElement m2m= driver.findElement(By.xpath(""));//the previous non visible element
m2m.click();
https://stackoverflow.com/questions/6101461
复制相似问题