Heim > Backend-Entwicklung > C++ > Wie kann man in unvorhersehbarer Reihenfolge effizient Selen -Fensterhandles verfolgen und durchführen?

Wie kann man in unvorhersehbarer Reihenfolge effizient Selen -Fensterhandles verfolgen und durchführen?

DDD
Freigeben: 2025-01-27 02:56:10
Original
647 Leute haben es durchsucht

How to Efficiently Track and Iterate Through Selenium WindowHandles in Unpredictable Order?

Die beste Praxis des hohen Managements des Seleniumfensters und des Etiketts

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

Eine Lösung besteht darin, ein Wörterbuch mit

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

. Auf diese Weise können Sie innehalten, bevor Sie sammeln. Sammeln Sie sie, indem Sie jedes Mal ein neues Etikett/ein neues Fenster sammeln, wenn Sie eine Reihe von Serienlisten erstellen und

zum erforderlichen Fenster umstellen können. Beispielimplementierung

WebDriverWait Folgendes ist eine Beispielimplementierung in Java: WindowHandles switchTo().window(newly_opened)

Dieser Code öffnet automatisch mehrere Registerkarten, warten Sie, bis sie geladen werden, und wechseln Sie dann mit einer ordnungsgemäßen

-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>
Nach dem Login kopieren
und das Sammeln von

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!

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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage