Heim >Java >javaLernprogramm >Wie kann ich mit Selenium WebDriver in Java effizient zwischen Browser-Registerkarten wechseln?

Wie kann ich mit Selenium WebDriver in Java effizient zwischen Browser-Registerkarten wechseln?

Susan Sarandon
Susan SarandonOriginal
2024-12-14 12:49:15245Durchsuche

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

Registerkartenwechsel mit Selenium WebDriver mit Java

Beim Automatisieren von Webseiten mit Selenium WebDriver ist das Wechseln zwischen Registerkarten eine häufige Anforderung. Beim Umgang mit Registerkarten innerhalb desselben Fensters entsteht jedoch eine Herausforderung, da beide Registerkarten möglicherweise dasselbe Fensterhandle haben.

Problem:

Beim Automatisieren eines Szenarios, das Folgendes beinhaltet Das Öffnen einer neuen Registerkarte, das Ausführen von Aktionen innerhalb dieser Registerkarte und das Zurückkehren zur ursprünglichen Registerkarte (übergeordnete Registerkarte) mithilfe des Schaltergriffs funktioniert möglicherweise nicht. Die Registerkarten können dasselbe Fensterhandle verwenden, wodurch das Wechseln zwischen ihnen wirkungslos wird.

Lösung 1: Fenstergriffe verfolgen

Wenn Fenstergriffe verfügbar sind, können Sie die Registerkarten mit wechseln die folgenden Schritte:

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

Lösung 2: Selenium Actions verwenden (Experimentell)

Die experimentelle Selenium.Actions-Klasse stellt eine select_window-Methode bereit, mit der Tabs nach Fenstertitel gewechselt werden können:

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();

Denken Sie daran, sicherzustellen, dass Ihre Treiberbibliothek vorhanden ist aktuell, um auf die Selenium.Actions-Klasse zuzugreifen.

Das obige ist der detaillierte Inhalt vonWie kann ich mit Selenium WebDriver in Java effizient zwischen Browser-Registerkarten wechseln?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn