ホームページ > Java > &#&チュートリアル > 同じウィンドウ ハンドルを共有しているときに Selenium WebDriver のタブを切り替える方法

同じウィンドウ ハンドルを共有しているときに Selenium WebDriver のタブを切り替える方法

Patricia Arquette
リリース: 2024-12-17 07:21:25
オリジナル
412 人が閲覧しました

How to Switch Between Tabs in Selenium WebDriver When They Share the Same Window Handle?

Java の Selenium WebDriver を使用したタブの切り替え

Java を使用した Selenium WebDriver では、複数のタブが関係するシナリオを自動化すると、次のような問題が発生する可能性があります。同じウィンドウ ハンドルを共有する可能性があります。これにより、デフォルトのスイッチ ハンドル メソッドを使用してタブ間を切り替える試みが妨げられる可能性があります。

問題:

提供されたコードは、新しいタブを開くことを含むプロセスを自動化しようとします。その中でアクションを実行し、元のタブ (親) に戻ります。ただし、両方のタブが同じウィンドウ ハンドルを共有しているため、ハンドルを切り替えるアプローチは成功しません。この問題は、別個の Firefox ウィンドウを使用する場合とは異なり、同じウィンドウ内のタブを処理する場合に特に発生します。

解決策:

このようなシナリオでタブ間を効果的に切り替えるには、次のアプローチを使用できます:

  1. clickDocumentLink() メソッドを利用して新しいドキュメントを開きます。 tab.
  2. ArrayList を使用して、開いているすべてのウィンドウ ハンドルのリストを取得します。 tabs = 新しい ArrayList (driver.getWindowHandles());.
  3. driver.switchTo().window(tabs.get(1));.
  4. ドライバで新しいタブを閉じる.close();.
  5. を使用して親タブに戻りますdriver.switchTo().window(tabs.get(0));.

コード例:

psdbComponent.clickDocumentLink();
ArrayList<String> tabs = new ArrayList<String> (driver.getWindowHandles());
driver.switchTo().window(tabs.get(1));
driver.close();
driver.switchTo().window(tabs.get(0));
ログイン後にコピー

これらの手順に従うことで、同じウィンドウ ハンドルを共有している場合でも、タブ間を正常に切り替えることができます。ドライバ内でアクションを試みる前に、必ずドライバを新しいタブに切り替えてください。

以上が同じウィンドウ ハンドルを共有しているときに Selenium WebDriver のタブを切り替える方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート