Also arbeite ich mit selen firefox webdrivers in c # winform, und ich habe diesen Code unten, um das Handle des Popups zu erhalten, das zeigt, wenn du auf den "webtraffic_popup_start_button" klickst und es sollte das Handle des Popups aber das Popup bekommen Griff ist gleich wie der aktuelle.
%Vor%Jede Hilfe mit diesem würde sehr geschätzt werden danke
So sieht Pop-up aus.
WebDriver führt absolut keine Spurverfolgung durch, um zu erkennen, welches Fenster tatsächlich im Vordergrund des Betriebssystems ist, und schaltet nicht automatisch um, wenn neue Browserfenster geöffnet werden. Das bedeutet, dass die richtige Methode, um das Handle eines neu geöffneten Popupfensters zu erhalten, ein mehrstufiger Prozess ist. Um dies zu tun, würdest du:
In Code, der die .NET-Sprachenbindungen verwendet, sieht das etwa so aus:
%Vor% Wenn Sie die .NET-Bindungen verwenden, gibt es alternativ eine PopupWindowFinder
-Klasse in der WebDriver.Support-Assembly, die speziell für diese Operationen entwickelt wurde. Die Verwendung dieser Klasse ist viel einfacher.
Ich habe einen Code, den du vielleicht magst. Die schnellste Lösung ist der Popup Finder, aber ich habe auch meine eigene Methode erstellt. Ich würde mich nie auf die Reihenfolge der Fenstergriffe verlassen, um das entsprechende Fenster auszuwählen. Popup-Fensterfinder:
%Vor%Meine benutzerdefinierte Methode. Grundsätzlich übergeben Sie ihm das Element, auf das Sie klicken möchten, Ihren Webdriver und optional die Wartezeit bis zur Suche, nachdem Sie auf das Element geklickt haben.
Es nimmt all Ihre aktuellen Griffe und erstellt eine Liste. Es verwendet diese Liste, um die zuvor vorhandenen Fenster zu entfernen, aus denen versehentlich umgeschaltet wurde. Dann klickt es auf das Element, das das neue Fenster startet. Es sollte immer eine Art Verzögerung nach dem Klick geben, da nichts sofort passiert. Und dann erstellt es eine neue Liste und vergleicht diese mit der alten, bis sie ein neues Fenster findet oder die Schleife abläuft. Wenn es kein neues Fenster findet, gibt es null zurück. Wenn Sie also ein unsicheres Webelement haben, das nicht immer funktioniert, können Sie eine Nullprüfung durchführen, um festzustellen, ob der Switch funktioniert hat.
%Vor%Tags und Links c# selenium selenium-webdriver