是否有通用的 Selenium 函數來驗證完整的網頁載入?
我們是否有任何通用函數來檢查 Selenium 中的頁面是否已完全載入?
您正在嘗試確定網頁是否已完全載入使用 Selenium 完成載入。儘管您已嘗試使用該程式碼,但即使頁面正在加載,它也不會等待。您尋求一種通用的解決方案,而不是檢查特定元素的可見性或可點擊性的解決方案。
答案:
不,沒有通用的 Selenium方法來確認完全載入網頁page.
說明:
讓我們檢查一下您的程式碼:
new WebDriverWait(firefoxDriver, pageLoadTimeout).until( webDriver -> ((JavascriptExecutor) webDriver).executeScript("return document.readyState").equals("complete"));
此程式碼中的pageLoadTimeout變數其實並不對應於真實的pageLoadTimeout () 函數。
但是,對於檢查頁面是否完全載入後,您可以使用 DesiredCapability 或 ChromeOptions 類別將 pageLoadStrategy() 設定為「正常」(其他可能的值包括「none」和「eager」)。以下是範例:
使用所需功能:
DesiredCapabilities dcap = new DesiredCapabilities(); dcap.setCapability("pageLoadStrategy", "normal"); FirefoxOptions opt = new FirefoxOptions(); opt.merge(dcap); WebDriver driver = new FirefoxDriver(opt);
使用ChromeOptions:
ChromeOptions opt = new ChromeOptions(); opt.setPageLoadStrategy(PageLoadStrategy.NORMAL); WebDriver driver = new FirefoxDriver(opt);
注意事項:
將PageLoadStrategy 設定為「正常」可確保瀏覽器用戶端已達到 'document.readyState' 等於的狀態「完全的。」但是,這並不能保證所有 JavaScript 和 Ajax 呼叫都已完成。
要解決此問題,您可以使用函數來等待所有 JavaScript 和 Ajax 呼叫完成:
public void WaitForAjax2Complete() throws InterruptedException { while (true) { if ((Boolean) ((JavascriptExecutor)driver).executeScript("return jQuery.active == 0")){ break; } Thread.sleep(100); } }
或者,您可以將 WebDriverWait 與 ExpectedConditions結合使用來等待特定事件或元素狀態:
// Wait for a specific part of the page title new WebDriverWait(driver, 10).until(ExpectedConditions.titleContains("partial_title_of_application_under_test")); // Wait for a specific element to become visible WebElement ele = new WebDriverWait(driver, 10).until(ExpectedConditions.visibilityOfElementLocated(By.xpath("xpath_of_the_desired_element")));
參考:
- [Selenium IE WebDriver僅適用於調試](https://stackoverflow.com/questions/23791841/selenium-ie-webdriver-only-works-while-debugging)
- [Selenium 如何管理等待頁面載入? ](https://stackoverflow.com/questions/19750811/selenium-how-to-manage-wait-for-page-load)
- [Chrome的頁面載入策略驅動程式](https://stackoverflow.com/questions/55985139/page-load-strategy-for-chrome-driver-updated-till-selenium-v3-12-0)
以上是是否有通用的 Selenium 函數來驗證完整的網頁載入?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

公司安全軟件導致部分應用無法正常運行的排查與解決方法許多公司為了保障內部網絡安全,會部署安全軟件。 ...

將姓名轉換為數字以實現排序的解決方案在許多應用場景中,用戶可能需要在群組中進行排序,尤其是在一個用...

系統對接中的字段映射處理在進行系統對接時,常常會遇到一個棘手的問題:如何將A系統的接口字段有效地映�...

在使用IntelliJIDEAUltimate版本啟動Spring...

Java對象與數組的轉換:深入探討強制類型轉換的風險與正確方法很多Java初學者會遇到將一個對象轉換成數組的�...

在使用MyBatis-Plus或其他ORM框架進行數據庫操作時,經常需要根據實體類的屬性名構造查詢條件。如果每次都手動...

Redis緩存方案如何實現產品排行榜列表的需求?在開發過程中,我們常常需要處理排行榜的需求,例如展示一個�...

電商平台SKU和SPU表設計詳解本文將探討電商平台中SKU和SPU的數據庫設計問題,特別是如何處理用戶自定義銷售屬...
