我正在使用selenium webdriver来运行我的自动化测试 . 我的一个测试打开登录页面,输入凭据并单击登录按钮 . 当我在本地运行它时,我可以看到它已成功登录到该站点但是我的测试在click方法上引发了错误,即使我已经看到它移动到下一页 . 我也在使用Chrome驱动程序 .
错误上的文字说:
OpenQA.Selenium.WebDriverException:'对远程WebDriver服务器的URL请求http:// localhost:4444/60秒后单击超时 . 内部异常WebException:请求已中止:操作已超时 .
这是我用来定位元素并单击它的代码:
private IWebElement LoginButton => Wait.Until(d => Driver.FindElementByCssSelector(".btn"));
private void ClickLoginButton()
{
LoginButton.Click();
}
其他网站的其他点击方法工作正常,我似乎只看到这个错误与此按钮 .
2 回答
当Selenium执行
click()
时,它将尝试等待页面加载 . 来自docs如果
IWebDriver
没有收到此指示(如果内存服务的话,则为document.readyState
),它将以WebDriverException
结束 .没有任何"pretty"解决方案 . 一种选择是在驱动程序初始化中设置
ChromeOption
但这会影响 all the tests .
另一个选择是在此特定按钮中捕获
WebDriverTimeoutException
我遇到了同样的问题:对URL的远程WebDriver服务器的HTTP请求http://localhost:17553/session/1a94ba744cb6dc03af7d65bf58003eff/element/0.42183143444524296-3/click timed out after 60 second
在我的方案中,在ChromeDriver构造函数中指定超时有所帮助