Sam*_*msh 8 java selenium webdriver
这是关于 java 中的 selenium webdriver。如果单击一个元素,通常它会很快,但有时当服务器繁忙时,它会在浏览器顶部显示 Connecting... 并挂起。通常处理等待,代码是:driver.manage().timeouts().implicitlyWait(4, TimeUnit.SECONDS);
但在这种情况下,当服务器挂在 click() 上时,这不会在时间限制后抛出异常,因为 webdriver 在点击完成连接到下一个网址。以前有没有人处理过这个问题,如何处理?
有没有办法计时完成click()和submit()?
Selenium 文档指出 Click() 会阻塞。如果出于任何原因,Selenium 认为页面未完全加载,那么您的 Click 将挂起您的测试。
我发现最简单的解决方法是完全跳过点击事件并使用:
element.SendKeys(Keys.Enter);
反而。您会得到二合一的特别优惠 - 它不会阻塞,并且您正在测试可访问性,因为许多受损用户无论如何都只使用键盘进行导航。
是的,这是一个已知问题,从 Selenium 2.21.0 开始,有一种方法可以解决。
问题在于,隐式等待旨在在搜索某些元素时等待已卸载的元素,但该click()方法只是等待,直到浏览器声明页面已完全加载。
尝试一下driver.manage().timeouts().pageLoadTimeout()这是 2.21.0 中的新方法,应该可以准确地处理这个问题。
| 归档时间: |
|
| 查看次数: |
10091 次 |
| 最近记录: |