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
Freigeben: 2024-12-14 12:49:15
Original
245 Leute haben es durchsucht

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
Nach dem Login kopieren

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();
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage