亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Selenium等到文檔準備好了

Selenium等到文檔準備好了

繁花不似錦 2019-09-20 14:30:48
任何人都可以讓我如何讓硒等到頁面完全加載的時候?我想要一些通用的東西,我知道我可以配置WebDriverWait并調用類似'find'的東西讓它等待,但我不會那么遠。我只需要測試頁面加載成功并轉到下一頁進行測試。我在.net中找到了一些東西但是無法在java中使用它...IWait<IWebDriver> wait = new OpenQA.Selenium.Support.UI.WebDriverWait(driver, TimeSpan.FromSeconds(30.00));wait.Until(driver1 => ((IJavaScriptExecutor)driver).ExecuteScript("return document.readyState").Equals("complete"));有人想過嗎?
查看完整描述

3 回答

?
GCT1015

TA貢獻1827條經驗 獲得超4個贊

試試這段代碼:


  driver.manage().timeouts().pageLoadTimeout(10, TimeUnit.SECONDS);

上面的代碼將等待最多10秒的頁面加載。如果頁面加載超過它將拋出的時間TimeoutException。你抓住了例外,滿足了你的需求。我不確定是否在拋出異常后退出頁面加載。我還沒有嘗試這個代碼。想要嘗試一下。


這是一個隱含的等待。如果你設置了一次它將具有范圍,直到Web驅動程序實例銷毀。


有關更多信息。


查看完整回答
反對 回復 2019-09-20
?
qq_花開花謝_0

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");

}


查看完整回答
反對 回復 2019-09-20
  • 3 回答
  • 0 關注
  • 328 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號