Frage

Ich versuche, einen Selen-Test für eine Web-Seite zu schreiben, die ein onbeforeunload Ereignis verwendet den Benutzer aufzufordern, vor der Abreise. Selen scheint nicht den Bestätigungsdialog zu erkennen, die aufkommt, oder einen Weg, um zu bestätigen Sie mit OK oder Abbrechen. Gibt es eine Möglichkeit, dies zu tun? Ich bin die Java Selen-Treiber verwenden, wenn das relevant.

War es hilfreich?

Lösung

Sie können einen Benutzer-Erweiterung (oder nur einige JavaScript in einem storeEval usw.) schreiben, die Tests, dass window.onbeforeunload gesetzt ist, und ersetzt sie dann mit null, bevor sie von der Seite fortfahren. Hässlich, aber Sie sollten von der Seite erhalten.

Andere Tipps

Ich habe gerade dies für eine Anwendung von mir zu tun, wo die onbeforeunload Handler eine Aufforderung bringt, wenn ein Benutzer eine Seite verlässt, während ein Dokument in einem nicht gesicherten Zustand ist. Python-Code:

driver.switch_to.alert.accept()

Das Java-Äquivalent wäre:

driver.switchTo().alert().accept();

Wenn der Alarm nicht existiert, oberhalb der Code wird mit einem NoAlertPresentException fehlschlagen, so dass keine Notwendigkeit für einen separaten Test ist die Existenz zu überprüfen, bevor die Aufforderung zu akzeptieren.

Ich bin mit Selen 2.43.0, aber ich denke, das ist jetzt eine Zeit lang machbar gewesen.

In Fällen, in denen ich möchte nicht die Aufforderung an alle kommen, denn das ist nicht, was ich testen, betreibe ich benutzerdefinierte JavaScript im Browser window.onbeforeunload zu setzen, bevor er die Seite null. Ich habe dies in dem Test Teardown-Code.

Achtung: dies gibt eine alternative Lösung

Watij - http://watij.com/ - kann hier helfen. Oder wenn Sie mit Ruby vertraut sind, können watir helfen - http://wtr.rubyforge.org/ install.html

Wenn ich mit begrenzten Kontrolle konfrontiert wurde, die ich über Browser Selen hatte, wandte ich mich an MozLab Plugin, das mein Problem, wenn nur für eine Browser-Plattform.

gelöst
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top