首頁 > Java > java教程 > 如何在 Selenium 中可靠地確定網頁載入完成?

如何在 Selenium 中可靠地確定網頁載入完成?

Susan Sarandon
發布: 2024-12-20 12:45:24
原創
268 人瀏覽過

How to Reliably Determine Web Page Load Completion in Selenium?

如何在 Selenium 中確定頁面加載完成

Selenium 提供了多種方法來檢查網頁是否已完全加載,包括:

頁面載入逾時設定

使用 pageLoadTimeout() 方法,Selenium 等待頁面載入在指定的超時時間內完成。但是,此方法可能並非在所有情況下都可靠。

將頁面載入策略設定為正常

您可以使用 DesiredCapability 或 ChromeOptions 類別將 pageLoadStrategy 設為正常。這確保瀏覽器在執行下一行程式碼之前等待 document.readyState 變為「完成」。

等待JavaScript 和Ajax 調用

等待對於要完成的所有JavaScript 和Ajax 調用,您可以使用檢查jQuery.active 的自訂函數property:

public void waitForAjax2Complete() throws InterruptedException {
    while (true) {
        if ((Boolean) ((JavascriptExecutor)driver).executeScript("return jQuery.active == 0")){
            break;
        }
        Thread.sleep(100);
    }
}
登入後複製

使用ExpectedConditions

您可以使用 ExpectedConditions類別等待滿足特定條件後再繼續操作,例如包含某個特定條件的頁面標題字串:

new WebDriverWait(driver, 10).until(ExpectedConditions.titleContains("partial_title_of_application_under_test"));
登入後複製

或特定的可見性element:

WebElement ele = new WebDriverWait(driver, 10).until(ExpectedConditions.visibilityOfElementLocated(By.xpath("xpath_of_the_desired_element")));
登入後複製

結論

雖然Selenium中沒有通用函數來檢查頁面是否已完全加載,但上述方法為不同的情況提供了有效的解決方案用例。透過考慮頁面載入策略、等待 JavaScript 和 Ajax 呼叫或使用 ExpectedConditions,您可以確保測試在繼續之前等待適當的條件。

以上是如何在 Selenium 中可靠地確定網頁載入完成?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板