Heim >Java >javaLernprogramm >Wie wechsle ich zwischen Registerkarten in Selenium WebDriver, wenn sie denselben Fenstergriff verwenden?

Wie wechsle ich zwischen Registerkarten in Selenium WebDriver, wenn sie denselben Fenstergriff verwenden?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-17 07:21:25410Durchsuche

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

Tabs wechseln mit Selenium WebDriver in Java

In Selenium WebDriver mit Java kann die Automatisierung eines Szenarios mit mehreren Tabs eine Herausforderung darstellen Es besteht die Möglichkeit, dass sie sich denselben Fenstergriff teilen. Dies kann Versuche behindern, mithilfe der standardmäßigen Wechselhandle-Methode zwischen Registerkarten zu wechseln.

Problem:

Der bereitgestellte Code versucht, einen Prozess zu automatisieren, der das Öffnen einer neuen Registerkarte umfasst. darin Aktionen ausführen und zur ursprünglichen Registerkarte (übergeordnet) zurückkehren. Der Switch-Handle-Ansatz ist jedoch erfolglos, da beide Registerkarten dasselbe Fensterhandle verwenden. Dieses Problem tritt insbesondere beim Umgang mit Tabs innerhalb desselben Fensters auf, anders als bei der Verwendung separater Firefox-Fenster.

Lösung:

Um in solchen Szenarien effektiv zwischen Tabs zu wechseln, muss die Der folgende Ansatz kann verwendet werden:

  1. Verwenden Sie die Methode clickDocumentLink(), um ein neues zu öffnen tab.
  2. Erhalten Sie eine Liste aller geöffneten Fensterhandles mit ArrayList tabs = new ArrayList (driver.getWindowHandles());.
  3. Wechseln Sie mit drivers.switchTo().window(tabs.get(1));.
  4. Schließen Sie den neuen Tab mit dem Treiber .close();.
  5. Kehren Sie mit zur übergeordneten Registerkarte zurück drivers.switchTo().window(tabs.get(0));.

Beispielcode:

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

Indem Sie diese Schritte befolgen, Sie können erfolgreich zwischen Registerkarten wechseln, auch wenn sie dasselbe Fensterhandle verwenden. Denken Sie daran, Ihren Treiber auf die neue Registerkarte umzustellen, bevor Sie darin Aktionen ausführen.

Das obige ist der detaillierte Inhalt vonWie wechsle ich zwischen Registerkarten in Selenium WebDriver, wenn sie denselben Fenstergriff verwenden?. 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