8

这是关于 java 中的 selenium webdriver 的。如果单击一个元素,通常它会很快运行,但有时当服务器很忙时,它会在浏览器顶部显示 Connecting... 并挂起。通常处理等待,代码是:driver.manage().timeouts().implicitlyWait(4, TimeUnit.SECONDS); 但是在这种情况下,当服务器挂在 click() 上时,这不会在时间限制后抛出异常,因为 webdriver 直到 click 完成连接到下一个网址。以前有没有人处理过这个问题,如何处理?

有没有办法定时完成click()and submit()

4

3 回答 3

4

Selenium 文档指出 Click() 块。如果出于任何原因,Selenium 认为页面没有完全加载,那么您的 Click 将挂起您的测试。

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

element.SendKeys(Keys.Enter);

反而。你得到一个特别的二付一 - 它不会阻止并且你正在测试可访问性,因为许多受损用户只使用键盘进行导航。

于 2015-09-11T17:27:26.457 回答
3

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

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

试试driver.manage().timeouts().pageLoadTimeout()这是 2.21.0 中的一种新方法,应该可以完全解决这个问题。

于 2012-05-07T20:04:18.017 回答
1

当 selenium 挂起时,将您的 Firefox 版本更新为与 selenium 一样更新

于 2017-02-25T18:18:45.733 回答