首頁 > Java > java教程 > 主體

如何在 Java 中使用 Selenium WebDriver 與巢狀 iFrame 中的元素進行互動?

DDD
發布: 2024-10-30 12:52:27
原創
837 人瀏覽過

How to Interact with Elements in Nested iFrames Using Selenium WebDriver in Java?

如何在Java 中使用Selenium WebDriver 有效地導航嵌套iFrame

在Selenium WebDriver 中,處理巢狀iFrame 可能是一項具有挑戰性的任務。讓我們深入研究一個特定的場景:

考慮以下HTML 結構,其中一個iframe 嵌套在另一個iframe 中:

<code class="html"><div>
  <iframe id="cq-cf-frame">
    <iframe id="gen367">
      <body id="CQrte">...</body>
    </iframe>
  </iframe>
</div></code>
登入後複製

我們的目標是與兩個iFrame 中的元素進行互動。

問題陳述:
選擇外部iframe 並導航到內部iframe 後,嘗試點擊外部iframe 中的元素(例如「確定」按鈕)失敗,導致出現元素未找到異常。

解決方案:

要在嵌套iFrame 之間成功導航並與所需元素交互,請按照以下步驟操作:

  1. 選擇外部iFrame:

    <code class="java">driver.switchTo().frame("cq-cf-frame");</code>
    登入後複製
    登入後複製
  2. 選擇內部iFrame:

    <code class="java">driver.switchTo().frame("cq-gen379");</code>
    登入後複製
  3. 與內部iFrame 元素互動:
  4. <code class="java">driver.findElement(By.id("CQrte")).sendKeys("Tnx");</code>
    登入後複製
  5. 退出內部>
  6. 重新輸入外部iFrame:

    <code class="java">// Between steps 4 and 5, remove the line:
    // selenium.selectFrame("relative=up");
    
    driver.switchTo().defaultContent(); // This exits both nested frames</code>
    登入後複製
  7. 與外部iFrame 元素交互:

    <code class="java">driver.switchTo().frame("cq-cf-frame");</code>
    登入後複製
    登入後複製
  8. 透過使用driver.switchTo().defaultContent();在重新進入外部iframe 之前,我們有效地退出所有嵌套框架,然後返回到我們需要的特定框架。這解決了找不到元素的問題,並允許我們與所需的元素進行互動。

以上是如何在 Java 中使用 Selenium WebDriver 與巢狀 iFrame 中的元素進行互動?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!