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 を処理することは、困難なタスクとなる場合があります。特定のシナリオを詳しく見てみましょう:

iframe が別の iframe 内にネストされている次の HTML 構造を考えてみましょう:

<code class="html"><div>
  <iframe id="cq-cf-frame">
    <iframe id="gen367">
      <body id="CQrte">...</body>
    </iframe>
  </iframe>
</div></code>
ログイン後にコピー

私たちの目標は、両方の iFrame 内の要素と対話することです。

問題ステートメント:
外側の iframe を選択して内側の iframe に移動すると、外側の iframe 内の要素 (OK ボタンなど) をクリックしようとすると失敗し、要素が表示されます。例外が見つかりません。

解決策:

ネストされた 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 要素との対話:

    <code class="java">driver.findElement(By.id("CQrte")).sendKeys("Tnx");</code>
    ログイン後にコピー
  4. 内部 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>
    ログイン後にコピー
  5. 外部 iFrame に再入力します:

    <code class="java">driver.switchTo().frame("cq-cf-frame");</code>
    ログイン後にコピー
    ログイン後にコピー
  6. 外部 iFrame 要素と対話します:

    <code class="java">// Continue step 6
    driver.findElement(By.xpath("//button[text()='OK']")).click();</code>
    ログイン後にコピー

driver.switchTo().defaultContent(); を使用する。外側の iframe に再度入る前に、ネストされたフレームをすべて事実上終了し、必要な特定のフレームに戻ります。これにより、要素が見つからない問題が解決され、目的の要素を操作できるようになります。

以上がJava で Selenium WebDriver を使用してネストされた iFrame 内の要素を操作するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!