3 回答
TA贡献1827条经验 获得超4个赞
试试这段代码:
driver.manage().timeouts().pageLoadTimeout(10, TimeUnit.SECONDS);
上面的代码将等待最多10秒的页面加载。如果页面加载超过它将抛出的时间TimeoutException。你抓住了例外,满足了你的需求。我不确定是否在抛出异常后退出页面加载。我还没有尝试这个代码。想要尝试一下。
这是一个隐含的等待。如果你设置了一次它将具有范围,直到Web驱动程序实例销毁。
有关更多信息。
TA贡献1835条经验 获得超7个赞
这是您给出的示例的可用Java版本:
void waitForLoad(WebDriver driver) {
new WebDriverWait(driver, 30).until((ExpectedCondition<Boolean>) wd ->
((JavascriptExecutor) wd).executeScript("return document.readyState").equals("complete"));
}
示例对于c#:
public static void WaitForLoad(IWebDriver driver, int timeoutSec = 15)
{
IJavaScriptExecutor js = (IJavaScriptExecutor)driver;
WebDriverWait wait = new WebDriverWait(driver, new TimeSpan(0, 0, timeoutSec));
wait.Until(wd => js.ExecuteScript("return document.readyState").ToString() == "complete");
}
- 3 回答
- 0 关注
- 291 浏览
添加回答
举报