我們是否有任何通用函數來檢查 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中文網其他相關文章!

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

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

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

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

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

在Idea中如何設置SpringBoot項目默認運行配置列表在使用IntelliJ...


熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

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

熱門文章

熱工具

Atom編輯器mac版下載
最受歡迎的的開源編輯器

SublimeText3 Linux新版
SublimeText3 Linux最新版

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

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

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。