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?
Ich benutze diesen Code, um auf Popups zuzugreifen und sie zu schließen. Es sollte nicht viel Unterschied sein
%Vor%Hoffe es hilft