3

我正在使用 Selenium 2.25.0 来自动化 Web 应用程序的 GUI 测试。这个应用程序有一个设置向导,它引导用户通过一组特定的表单并相应地配置一个设备。表单是动态生成的,并具有一组通用的后退/下一步按钮。在特定页面上,下一个按钮不会单击()。

我已验证此按钮的尺寸(大小())> 0。我可以看到按钮获得焦点,但它没有单击。此外,click() 方法不会抛出任何异常。

最终,下一行代码的显式等待超时,我的测试失败。浏览器是 Firefox,直到最近,相同的代码才能正常工作。

这似乎是一个已知问题。在这种情况下,是否有解决方法?该解决方案适用于 Firefox/Chrome 和 IE。

有人建议使用

driver.manage.Timeout().PageLoadTimeouts()

但是,如果代码已经有明确的等待,那不是多余的。

4

2 回答 2

3

看看http://seleniumhq.org/docs/04_webdriver_advanced.html,还要确保你正确地专注于正确的框架

于 2012-11-01T01:02:13.437 回答
2

在您的代码找到按钮之后,在它单击它之前,您应该插入一行,将元素的 location_once_scrolled_into_view 成员变量分配给一个变量,即使您从未使用它。我不知道为什么,但这将确保点击真正达到目标。(我们在我们的测试脚本中使用它,它似乎可以完成这项工作。)

例子:

button = driver.find_element_by_id("MyButton")
ScrollLocation = button.location_once_scrolled_into_view
button.click()
于 2013-08-29T16:28:30.437 回答