簡體   English   中英

Selenium Webdriver新選項卡URL未正確加載

[英]Selenium webdriver new tab URL is not loaded properly

我正在嘗試從tab1打開一個新選項卡(現在我有兩個不同的選項卡。Tab1和Tab2),帶有URL的第二個選項卡未完全加載,而是停在了中間,並顯示了無標題的選項卡。

public void waitForPageLoadComplete(WebDriver driver, int specifiedTimeout) {
        Wait<WebDriver> wait = new WebDriverWait(driver, specifiedTimeout);
        wait.until(driverTemp -> String.valueOf(((JavascriptExecutor) driverTemp).executeScript("return document.readyState"))
                .equals("complete"));
    }

在上面的代碼中,我讓驅動程序等待特定時間以正確加載頁面或返回超時,但是上面的代碼也不起作用,如果我使用Thead.sleep(millSec),則線程將等待一段時間,直到那時頁面正在加載,沒有任何錯誤。 有人可以幫助我如何在不使用thread.sleep的情況下在新標簽頁中加載URL。

首先,您必須將驅動程序切換到應該執行javascript的選項卡。 我用這個:

public void goto2() throws InterruptedException {
    ArrayList<String> winHandles = new ArrayList<String> (driver.getWindowHandles());
    // it takes some ms to get the WindowHandles, so this solution does not avoid Thread.sleep completely
    Thread.sleep(500);
    driver.switchTo().window(winHandles.get(1));
}

另一件事是javascript本身。 要等待頁面完全加載,請使用以下命令:

public void waitDom() {
    JavascriptExecutor js = (JavascriptExecutor) driver;
    js.executeScript("window.onload = null;");
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM