ホームページ >Java >&#&チュートリアル >同じウィンドウハンドルにもかかわらず、Java を使用して Selenium WebDriver のタブをシームレスに切り替えるにはどうすればよいですか?

同じウィンドウハンドルにもかかわらず、Java を使用して Selenium WebDriver のタブをシームレスに切り替えるにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-01 10:14:13824ブラウズ

How to Seamlessly Switch Between Tabs in Selenium WebDriver with Java Despite Identical Window Handles?

Java の Selenium WebDriver を使用してタブを簡単に切り替える

問題:

Java を使用した Selenium WebDriver では、タブの切り替えを自動化できることが証明されています異なるタブに同じウィンドウハンドルがあるため、面倒です。 「スイッチハンドル」を使用しているにもかかわらず、機能は依然としてわかりにくいです。この例ではウィンドウ ハンドルの性質が同一である場合、ウィンドウ ハンドルに依存せずにタブをシームレスに切り替えるにはどうすればよいですか?

解決策:

タブを効果的に切り替えるには、次のコードを実装します。アプローチ:

psdbComponent.clickDocumentLink();
ArrayList<String> tabs = new ArrayList<>(driver.getWindowHandles());
driver.switchTo().window(tabs.get(1));
driver.close();
driver.switchTo().window(tabs.get(0));

説明:

  1. ウィンドウ ハンドルの取得: ドライバーにアクセスして、現在開いているタブのリストを取得します。 getWindowHandles()。各タブまたはウィンドウは、一意のウィンドウ ハンドルによって識別されます。
  2. 新しいタブに切り替える: driver.switchTo().window(tabs.get(1)) を使用してフォーカスを切り替えます。 2 番目のタブ (インデックス = 1) に移動します。これにより、新しく開いたタブ内での操作が可能になります。
  3. 新しいタブを閉じる: 新しいタブでの操作が完了したら、driver.close() を呼び出してそのタブを閉じます。
  4. 親タブに戻る: driver.switchTo().window(tabs.get(0)) を利用して切り替えますフォーカスは元の (親) タブ (インデックス = 0) に戻ります。

これらの手順に従うことで、共有ウィンドウ ハンドルに関係なく、Selenium WebDriver のタブを簡単に切り替えることができます。このアプローチは、自動ブラウザー操作におけるタブ切り替えタスクに対する堅牢なソリューションを提供します。

以上が同じウィンドウハンドルにもかかわらず、Java を使用して Selenium WebDriver のタブをシームレスに切り替えるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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