如何在 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中文網其他相關文章!