Ich benutze watir-webdriver und rspec, um Assertions zu schreiben. Ich stoße auf einige Probleme, die Assertionen auf Elementen eines neuen Fensters laufen lassen.
Dies ist meine Methode, die ich benutze:RSpec Assertions auf neues Fenster
def open_window
foobar = @browser.window(:title, 'Foo View')
return foobar
end
Dies ist, wie ich meine spec schreibe:
describe 'testing a new window' do
it 'opens a new window' do
open_window.use
sleep 2 # hackey way of getting it to work so far
end
it 'sees elements on page' do
# code for expectations of elements
# Several more it blocks
end
end
Was geschieht: Wenn ich nicht für eine unbestimmte Menge in einem sleep
Befehl setzen von Es scheint, als würde sich das Fenster schließen, bevor es alle Assertionen durchlaufen kann. Gibt es eine Art von wait
, die angewendet werden kann, um das neue Fenster durch die gesamte Spezifikation offen zu halten?
Ihre Web-Anwendung wird einen Browser öffnen und dann nach kurzer Zeit schließen ? Und Sie möchten alle Ihre Tests ausführen, bevor es schließt? – titusfortner
@titsfortner, ja - ich suche nach den Assertions auf dem Fenster, das es öffnet – kmancusi
@kmancusi, der das neue Fenster schließt? Ist es die Anwendung, die Sie testen, oder sagen Sie Watir, sie zu schließen? Es wäre ziemlich ungewöhnlich für Watir, das Fenster zufällig zu schließen. Sind Sie sicher, dass einer Ihrer Tests nicht zur Schließung führt? Ist es immer die gleiche Reihe von Tests, die vergehen, bevor das Fenster schließt? –