1 回答
TA贡献1828条经验 获得超3个赞
当 Selenium 执行时,click()它会尝试等待页面加载。从文档
Click() 方法将尝试阻止,直到页面加载完毕
如果IWebDriver没有收到此指示(document.readyState如果没记错的话),它将以WebDriverException.
没有任何“漂亮”的解决方案。一种选择是ChromeOption在驱动初始化时设置
ChromeOptions chromeOptions = new ChromeOptions();
chromeOptions.AddAdditionalCapability("pageLoadStrategy","none");
IWebDriver driver = new ChromeDriver(chromeOptions);
但这会影响所有测试。
另一种选择是抓住WebDriverTimeoutException这个特定的按钮
private void ClickLoginButton()
{
try
{
driver.Manage().Timeouts().SetPageLoadTimeout(TimeSpan.FromSeconds(1));
LoginButton.Click();
}
catch (WebDriverTimeoutException) { }
finally
{
driver.Manage().Timeouts().SetPageLoadTimeout(TimeSpan.FromSeconds(originalTime));
}
}
- 1 回答
- 0 关注
- 202 浏览
添加回答
举报