ネストされた iframe を適切に終了し、Selenium WebDriver の要素と対話する方法

Mary-Kate Olsen
リリース: 2024-10-30 20:55:30
オリジナル
953 人が閲覧しました

How to Properly Exit Nested Iframes and Interact with Elements in Selenium WebDriver?

Java での Selenium WebDriver による iframe の処理

この記事では、Java を使用して Selenium WebDriver で深くネストされた iframe を操作する際の課題について説明します。具体的には、外側の iframe を選択して内側の iframe にアクセスし、その本文にテキストを入力し、両方の iframe を終了して外側の iframe にあるボタンをクリックするというシナリオに焦点を当てています。

問題Attempt

提供されたコード スニペットは、最初は意図したとおりに動作し、内部 iframe の本文にテキストを入力します。ただし、両方の iframe を終了して [OK] ボタンをクリックしようとすると、Selenium はボタン要素が見つからないことを示す例外をスローします。

解決策

この問題を解決する鍵は、 driver.switchTo().defaultContent() メソッドを使用することにあります。このメソッドを使用すると、現在選択されているすべてのフレームを終了して、実質的にメイン HTML ドキュメントに戻ることができます。

変更されたコード

コードを修正するには、以前の終了試行を置き換えてください。

<code class="java">// Remove the line with selenium.selectFrame("relative=up");
driver.switchTo().defaultContent(); // Exit both frames
driver.switchTo().frame("cq-cf-frame"); // Re-enter the outer iframe</code>
ログイン後にコピー

これらの行を追加すると、Selenium は最初に両方の iframe を終了し、次に外側の iframe に再度入ります。これにより、[OK] ボタンを操作する前に、すべてのフレーム選択が適切に設定されることが保証されます。

完全なコード

変更されたコードは次のようになります。

<code class="java">driver.switchTo().frame("cq-cf-frame"); // Line 1
driver.findElement(By.css("#extdd-9 > div.tblRow > input.edititem")).click(); // Line 2
driver.switchTo().Frame("cq-gen379"); // Line 3
driver.findElement(By.id("CQrte")).sendKeys("Tnx"); // Line 4
driver.switchTo().defaultContent(); // Line 5, added to exit both frames
driver.switchTo().frame("cq-cf-frame"); // Line 6, added to re-enter outer frame
driver.findElement(By.xpath("//button[text()='OK']")).click(); // Line 6</code>
ログイン後にコピー

これらの変更を適用すると、コードは内側の iframe にテキストを正常に入力し、外側の iframe で [OK] ボタンをクリックするようになります。

以上がネストされた iframe を適切に終了し、Selenium WebDriver の要素と対話する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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