Also, wenn ich meine Tests einzeln ausführen, funktionieren sie großartig. Wenn ich jedoch meine Funktion (mehrere Tests) ausführe, schlägt mein Code fehl.
Dies ist, weil, wenn Capybara existiert, nicht alle meine Fenster schließen und daher meine Selen Treiber nicht wissen, welches Fenster zu verwenden.Können Sie alle geöffneten Fenster in Capybara schließen?
Grundsätzlich passiert, dass mein Test mehrere Fenster öffnet. Dies geschieht, weil meine Tests auf Links klicken, die neue Fenster öffnen und den Inhalt in den neuen Fenstern überprüfen. Obwohl ich am Ende jedes Tests page.quit
sage, schließt diese Funktion nicht alle geöffneten Fenster (schließt das aktive Fenster, aber nicht das ursprüngliche Fenster). Wenn der 2. Test ausgeführt wird, verwendet er das ursprünglich erstellte Fenster, aber wenn das neue Popup geöffnet wird, verwendet es das falsche Fenster.
Wie kann ich sicherstellen, dass bei jedem Test ein neuer Browser verwendet wird und alle Fenster des vorherigen Tests geschlossen sind.
Ich verwende derzeit page.reset!
und page.quit
.
Nicht sicher, aber kann ich session.quit
sagen, um alle geöffneten Browserfenster zu schließen?
Dies funktioniert nicht, die 'quit' Funktion existiert nicht. Gleiches gilt für Schließen. – Jason
Dies funktioniert nicht – Jason
Dies funktioniert jedoch nach dem Zufallsprinzip.Diesmal gab es mir 'Fehler/Fehler: Kann keine passende Zeile von Backtrace finden Selenium :: WebDriver :: Fehler :: NoSuchWindowError: getUrl Ausführung fehlgeschlagen; Das Fenster konnte nicht gefunden werden – Ava