ホームページ  >  記事  >  Java  >  Java を使用して Selenium WebDriver でネストされた iframe を処理する方法: ステップバイステップ ガイド

Java を使用して Selenium WebDriver でネストされた iframe を処理する方法: ステップバイステップ ガイド

Barbara Streisand
Barbara Streisandオリジナル
2024-10-31 18:06:02241ブラウズ

How to Handle Nested Iframes in Selenium WebDriver with Java: A Step-by-Step Guide

Java を使用した Selenium WebDriver でのネストされた iframe の処理

この質問は、Java で Selenium WebDriver を使用したネストされた iframe の処理を​​中心に展開します。提供された HTML 構造には 2 つのネストされた iframe が含まれています。タスクは、外側の iframe を選択して内側の iframe にアクセスし、その本文にテキストを入力することです。その後、内側の iframe を終了し、外側の iframe に再度入り、外側の iframe 内にある [OK] ボタンをクリックすることが目標です。

最初に、指定されたコードは外側の iframe (" cq-cf-frame") を作成し、ネストされた iframe ("cq-gen379") の本体にテキストを書き込みます。ただし、内側の iframe を終了して外側の iframe で [OK] ボタンを見つけようとすると、要素が見つかりません。

問題の解決

解決するにはこの問題では、外側のフレームに再び入る前に、すべてのネストされたフレーム (この場合は内側の iframe) を明示的に切り替える必要があります。これは、 driver.switchTo().defaultContent() メソッドを使用して実現されます。このメソッドを使用すると、現在のフレームを終了してメイン ドキュメントに戻ることができます。

修正されたコードは次のとおりです:

<code class="java">// Between step 4 and step 5
// Remove selenium.selectFrame("relative=up");

// Exit the nested iframe
driver.switchTo().defaultContent();

// Re-enter the outer iframe
driver.switchTo().frame("cq-cf-frame");

// Continue step 6
driver.findElement(By.xpath("//button[text()='OK']")).click();</code>

この変更により、コードは前に内部 iframe を終了するようになります。外側の iframe 内の要素と対話しようとしています。 「OK」ボタンが正常に見つけられ、クリックされます。

以上がJava を使用して Selenium WebDriver でネストされた iframe を処理する方法: ステップバイステップ ガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。