Selenium 的 WindowHandles
用於可靠的多窗口/選項卡管理
有效管理多個瀏覽器窗口和選項卡對於健壯的 Web 應用程序測試至關重要。 Selenium 的 WindowHandles
提供了這種控制,但其迭代順序(基於 GUID 的存儲)固有的不可預測性帶來了挑戰。
一個常見的問題是循環WindowHandles
時順序不一致。這使得定位特定選項卡或窗口變得困難。
解決方案涉及將 WebDriverWait
與創建新窗口/選項卡時的實時句柄收集相結合。這確保了更新的 WindowHandles
列表,從而實現可靠的迭代和切換。
這是一個展示此技術的 Java 示例:
<code class="language-java">WebDriver driver = new InternetExplorerDriver(); driver.get("http://www.google.com"); String firstTab = driver.getWindowHandle(); ((JavascriptExecutor) driver).executeScript("window.open('http://facebook.com/');"); WebDriverWait wait = new WebDriverWait(driver, 5); wait.until(ExpectedConditions.numberOfWindowsToBe(2)); Set<String> handles = driver.getWindowHandles(); Iterator<String> iterator = handles.iterator(); while (iterator.hasNext()) { String currentTab = iterator.next(); if (!firstTab.equalsIgnoreCase(currentTab)) { driver.switchTo().window(currentTab); System.out.println("Now working on Facebook"); } }</code>
此代碼:
firstTab
中。 WebDriverWait
確保在繼續之前打開兩個窗口。 WindowHandles
集。 這種方法適用於 Python 等其他語言。 此方法保證了 Selenium 測試中瀏覽器窗口和選項卡的一致且可靠的管理。
以上是如何使用 Selenium 的 WindowHandles 可靠地管理和迭代多個瀏覽器視窗和標籤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!