我正在使用硒铬驱动程序2.45来测试我的网站。网站页面上的javascript有时无法完成,document.readyState永远保持在“加载”阶段。发生此问题时,我想转到另一个页面,但似乎驱动程序总是在等待document.readyState被“完成”以运行下一个命令。当页面在“加载”状态下挂起时,我试图抓住它,然后转到另一个页面继续测试,但是当文档状态挂起时,似乎驱动程序也挂起了。抛出异常后,我找不到强制驱动程序继续的方法。
try
{
//Throws WebDriverException after waiting for 60 seconds
driver.Navigate().GoToUrl(url);
}
catch (WebDriverException)
{
/*I'm trying to force page to set document.readyState to 'completed' because
next line will do nothing and throw the same exception after 60 seconds
since document.readyState is 'loading'. But this line throws the same exception too*/
((IJavaScriptExecutor)driver).ExecuteScript("window.stop();");
//This line will do nothing and throw the same exception
driver.Navigate().GoToUrl(anotherUrl);
}
我也尝试过no-sandbox选项,但对我来说不起作用。同时增加Timeouts()。ImplicitWait值也无法使用。
是否有一种方法可以强制驱动程序继续运行而不等待页面(仅针对特定页面。我需要等待驱动程序等待页面加载到其他页面上)?还是您有一个更好的主意来克服这个问题?