Können Sie alle geöffneten Fenster in Capybara schließen?

8

Wenn ich meine Tests einzeln ausführen, funktionieren sie großartig. Jedoch, wenn ich meine Funktion (mehrere Tests) ausführen, schlägt mein Code fehl.
Das liegt daran, dass, wenn Capybara existiert, nicht alle meine Fenster geschlossen werden und daher meine Selentreiber nicht wissen, welches Fenster zu verwenden ist.

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, wird das ursprünglich erstellte Fenster verwendet, aber wenn das neue Popup geöffnet wird, wird das falsche Fenster verwendet.

Wie kann ich sicherstellen, dass bei jedem Test ein neuer Browser verwendet wird und alle Fenster des vorherigen Tests geschlossen werden.
Ich verwende derzeit page.reset! und page.quit .
Nicht sicher, aber kann ich session.quit sagen, um alle geöffneten Browserfenster zu schließen?

    
Jason 25.05.2012, 18:06
quelle

7 Antworten

8

Dieser Code funktioniert:

%Vor%

Ich führe das einfach im Fenster aus, das ich schließen möchte.

    
Jason 19.07.2012 20:08
quelle
3

Ich benutze diesen Code, um auf Popups zuzugreifen und sie zu schließen. Es sollte nicht viel Unterschied sein

%Vor%

Hoffe es hilft

    
Martin Larsson 05.07.2012 13:23
quelle
3
%Vor%

Hat der Charme für mich getan. Kombination von @Jason und @ Justins Antworten.

Danke!

    
Ava 05.10.2012 21:28
quelle
1

Versuchen Sie Folgendes:

%Vor%

(Ich denke, es wird funktionieren, aber ich hatte keine Gelegenheit, es zu testen.)

    
Justin Ko 25.05.2012 18:35
quelle
1

Versuchen Sie Folgendes:

%Vor%

Das hat für mich funktioniert.

    
Kunal 07.08.2015 06:05
quelle
1

Um alle Assertionen in der spec-Datei zu haben, übergab ich die Kontrolle an neue Seite (Fenster) , nachdem ich die Assertions I geschlossen new ausgeführt habe Seite und übergab die Kontrolle an die Originalseite wie folgt:

%Vor%     
G. I. Joe 02.01.2017 23:42
quelle
0

Fügen Sie dies Ihren Funktionstests hinzu, es setzt die Sitzungscookies zurück und startet den Test auf einer leeren Seite:

%Vor%     
Rob 27.10.2016 19:11
quelle

Tags und Links