首頁 >後端開發 >C++ >我如何通過硒窗手柄可靠地跟踪和迭代?

我如何通過硒窗手柄可靠地跟踪和迭代?

Barbara Streisand
Barbara Streisand原創
2025-01-27 02:52:08812瀏覽

How Can I Reliably Track and Iterate Through Selenium Window Handles?

Selenium 中追蹤和迭代選項卡和視窗的最佳方法(使用 WindowHandles)

在軟體測試中,追蹤多個選項卡和視窗可能是一項挑戰。 Selenium 提供了 WindowHandles 屬性來管理此問題,但其不可預測的排序順序可能是一個缺點。

WindowHandle 順序的隨機性

如給定討論中所述,Selenium 並不保證視窗句柄的順序按視窗建立的順序排序。這種隨機性使得難以以所需順序迭代視窗。

替代方案

為了解決這個問題,我們可以用更可靠的方法:

  1. 引入 WebDriverWait: 這確保 WebDriver 在收集句柄之前等待新選項卡或視窗完全載入。
  2. 收集視窗句柄: 開啟新分頁或視窗後,擷取視窗句柄集。
  3. 迭代和切換: 循環遍歷句柄,並使用 switchTo().window() 將焦點放在每個新開啟的視窗上,取決於需求。

以下是用 Java、WebDriver 3.5.3 和 IEDriverServer 3.5.0.0 寫的範例:

<code class="language-java">WebDriverWait wait = new WebDriverWait(driver, 5);
wait.until(ExpectedConditions.numberOfWindowsToBe(2));
Set<String> s1 = driver.getWindowHandles();
Iterator<String> i1 = s1.iterator();</code>

透過遵循這些步驟,我們可以更有效地管理多個選項卡和窗口,確保可預測的迭代和切換行為。

以上是我如何通過硒窗手柄可靠地跟踪和迭代?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn