Selenium,点击元素,挂起

这是关于java中的selenium webdriver。 如果单击一个元素,通常会很快,但有时当服务器忙时,它会在浏览器顶部显示正在连接…并挂起。 通常要处理等待,代码是: driver.manage().timeouts().implicitlyWait(4, TimeUnit.SECONDS); 但在这种情况下,当服务器挂起click()时,这不会在时间限制之后抛出exception,因为webdriver在点击完成连接到下一个url之前不会开始计数。 有没有人以前处理过这个问题,怎么做?

有没有办法完成click()submit()

是的,这是一个已知的问题,从Selenium 2.21.0开始,有一种方法可以解决。

问题是隐式等待被设计为在搜索某些元素时等待卸载的元素,但click()方法只是等待浏览器声明页面已完全加载。

尝试使用driver.manage().timeouts().pageLoadTimeout()这是2.21.0中的一个新方法,应该完全处理这个问题。

Selenium文档声明Click()阻止。 如果出于任何原因,Selenium认为该页面未完全加载,那么您的Click将挂起您的测试。

我发现最简单的解决方法是完全跳过click事件并使用:

element.SendKeys(Keys.Enter);

代替。 你得到一个特别的两个 – 它不会阻止你正在测试可访问性,因为许多有缺陷的用户只使用键盘进行导航。

当selenium挂起更新你的firefox版本时更新为selenium