Einführung
Wenn Sie den Selenium -Webdriver für den UI -Test des Internet Explorer 11 verwenden, kann es schwierig sein, mehrere Etiketten und Windows zu verwalten. Um sie effektiv zu verfolgen, ist die Verwendung von Attributen sehr wichtig. Wenn jedoch die erwartete Reihenfolge des Fenstergriffs instabil ist, treten häufig häufig auftretende Probleme auf. In diesem Artikel wird vorgestellt, wie dieses Problem gelöst und eine effektivere Lösung erforscht wird.
Zufälligkeit der Reihenfolge des Fenstergriffs WindowHandles
im Gegensatz zu den Erwartungen ist die Reihenfolge von nicht stabil. Webdriver implementiert Iteration in irgendeiner Weise ohne Garantie für die Einfügungsreihenfolge. Dies kann es schwierig machen, mehrere Fenster effektiv zu verwalten und zwischen ihnen zu wechseln.
Verwalten Sie das Wörterbuch WindowHandles
GUID als Schlüssel und den entsprechenden Seitentyp als Wert zu erstellen. Diese Methode sorgt für korrektes Umschalten zwischen den Fenstern. Es erfordert jedoch zusätzliche Wartung, insbesondere beim Schließen des Fensters. Einführung in Webdriverwait
WindowHandle
Eine bessere Methode ist die Verwendung
zum erforderlichen Fenster umstellen können. Beispielimplementierung
WebDriverWait
Folgendes ist eine Beispielimplementierung in Java: WindowHandles
switchTo().window(newly_opened)
-Liste zum entsprechenden Fenster. Schlussfolgerung
Obwohl es möglich ist, die Wörterbuchfensterverwaltung zu verwenden, bietet die Einführung von
<code class="language-java">import java.util.Iterator; import java.util.Set; import org.openqa.selenium.By; import org.openqa.selenium.JavascriptExecutor; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.selenium.ie.InternetExplorerDriver; import org.openqa.selenium.support.ui.ExpectedConditions; import org.openqa.selenium.support.ui.WebDriverWait; public class 新标签页处理 { public static void main(String[] args) { WebDriver driver = new InternetExplorerDriver(); driver.get("http://www.google.com"); String first_tab = driver.getWindowHandle(); ((JavascriptExecutor) driver).executeScript("window.open('http://facebook.com/');"); WebDriverWait wait = new WebDriverWait(driver, 5); wait.until(ExpectedConditions.numberOfWindowsToBe(2)); Set<String> s1 = driver.getWindowHandles(); Iterator<String> i1 = s1.iterator(); String next_tab; while (i1.hasNext()) { next_tab = i1.next(); if (!first_tab.equalsIgnoreCase(next_tab)) { driver.switchTo().window(next_tab); } } } }</code>
beim Erstellen einer neuen Registerkartenseite eine effizientere und mehr Fensterseiten und Fenster in Selen, um mehrere Registerkartenseiten zu verfolgen und zu iteraten und Fenster. WindowHandles
Das obige ist der detaillierte Inhalt vonWie kann man in unvorhersehbarer Reihenfolge effizient Selen -Fensterhandles verfolgen und durchführen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!