Ich führe einen Test durch, wo ich einen Link in eine neue Registerkarte kopieren/einfügen. Sobald ich damit fertig bin, schaue ich, um es zu schließen, dann laufe andere Tests innerhalb der Spezifikation weiter. Das Problem im Moment ist, dass wenn ich window.close
verwende, es schließt die gesamte Browser-Instanz, nicht nur dieses bestimmte Fenster.
Hier ist mein allgemeiner Code:Watir-Webtreiber; window.close schließt den gesamten Browser?
# Method for the window
def this_window
page = @browser.window(:title, 'Foobar')
return page
end
# Helper method for copy/paste in new tab
def copy_paste_in_new_tab
@browser.send_keys [:command, 't']
@browser.send_keys [:command, 'v']
@browser.send_keys [:return]
end
# How it appears in the spec
it 'goes to new page' do
copy_paste_in_new_tab
sleep 1
this_window.use
end
it 'interacts with new window' do
# runs some tests on new window correctly
end
it 'closes the window' do
this_window.close
sleep 2
end
it 'continues to other tests' do
# by this point the entire session has closed
end
Dies ist der Fehler, den ich bin im Terminal bekommen:
An error occurred in an `after(:context)` hook.
Errno::ECONNREFUSED: Connection refused - connect(2) for "127.0.0.1" port 7055
occurred at /Users/foo/.rvm/rubies/ruby-2.2.2/lib/ruby/2.2.0/net/http.rb:879:in `initialize'
ich Probleme nur am stoßen, wenn ich Code, die letzten nach Schließung auszuführen versuchen Fenster. Wenn ich this_window.close
als meinen letzten Code verwende, dann funktioniert es richtig
Irgendwelche Ideen zu was verursacht das?
In diesem Sinne, wäre es besser zu automatisieren, in einem neuen _window_ zu öffnen, um Tests zu starten? – kmancusi
Ja, verwenden Sie Windows anstelle von Tabs und es sollte funktionieren. :) – titusfortner