ホームページ >Java >&#&チュートリアル >Java で Selenium WebDriver を使用してブラウザのタブを効率的に切り替える方法

Java で Selenium WebDriver を使用してブラウザのタブを効率的に切り替える方法

Susan Sarandon
Susan Sarandonオリジナル
2024-12-14 12:49:15245ブラウズ

How to Efficiently Switch Between Browser Tabs Using Selenium WebDriver in Java?

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

Selenium WebDriver を使用して Web ページを自動化する場合、タブ間の切り替えは一般的な要件です。ただし、同じウィンドウ内のタブを扱う場合、両方のタブが同じウィンドウ ハンドルを持つ可能性があるため、問題が発生します。

問題:

次のようなシナリオを自動化する場合新しいタブを開き、そのタブ内でアクションを実行し、元のタブ (親) に戻ると、スイッチ ハンドルが機能しない場合があります。タブは同じウィンドウ ハンドルを共有しているため、タブ間の切り替えが無効になる場合があります。

解決策 1: ウィンドウ ハンドルを追跡する

ウィンドウ ハンドルが利用可能な場合は、次を使用してタブを切り替えることができます。次の手順:

ArrayList<String> tabs = new ArrayList<String>(driver.getWindowHandles());
driver.switchTo().window(tabs.get(1)); // Switch to the new tab
driver.close(); // Close the new tab
driver.switchTo().window(tabs.get(0)); // Switch back to the parent tab

解決策 2: Selenium アクションを使用する(実験的)

実験的な Selenium.Actions クラスは、ウィンドウ タイトルごとにタブを切り替えるために使用できる select_window メソッドを提供します。

WebElement parentTab = driver.findElement(By.xpath("//ul/li/a[@id='tab1_link']"));
WebElement newTab = driver.findElement(By.xpath("//ul/li/a[@id='tab2_link']"));

Actions actions = new Actions(driver);
actions.keyDown(Keys.CONTROL).click(newTab).keyUp(Keys.CONTROL).build().perform();
actions.keyDown(Keys.CONTROL).click(parentTab).keyUp(Keys.CONTROL).build().perform();

ドライバー ライブラリがSelenium.Actions クラスにアクセスするには最新の状態にしてください。

以上がJava で Selenium WebDriver を使用してブラウザのタブを効率的に切り替える方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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