3 回答

TA貢獻(xiàn)1827條經(jīng)驗 獲得超4個贊
試試這段代碼:
driver.manage().timeouts().pageLoadTimeout(10, TimeUnit.SECONDS);
上面的代碼將等待最多10秒的頁面加載。如果頁面加載超過它將拋出的時間TimeoutException。你抓住了例外,滿足了你的需求。我不確定是否在拋出異常后退出頁面加載。我還沒有嘗試這個代碼。想要嘗試一下。
這是一個隱含的等待。如果你設(shè)置了一次它將具有范圍,直到Web驅(qū)動程序?qū)嵗N毀。
有關(guān)更多信息。

TA貢獻(xiàn)1835條經(jīng)驗 獲得超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 關(guān)注
- 322 瀏覽
添加回答
舉報