8 Stimmen

Wie kann ich modale Dialoge mit Selenium testen?

Ich fange gerade an mit Selenium-IDE und versuchen, eine Webanwendung zu testen, die voller modaler Dialoge ist ( window.showModalDialog ).

Die Aufzeichnung des Tests scheint zu funktionieren (außer dass nichts im Protokoll steht, wenn das Dialogfeld erscheint), aber sie werden nicht richtig wiedergegeben. Das Skript öffnet tatsächlich das Fenster (ausgelöst durch einen Tastenklick), aber dann wartet es einfach auf unbestimmte Zeit.

Irgendwelche Vorschläge?

3voto

Pete TerMaat Punkte 3135

Von der Selen FAQ Selenium funktioniert offenbar mit einigen Arten von Dialogen, aber nicht mit anderen:

Ich kann nicht mit einem Popup-Dialog interagieren. Mein Test bleibt auf der Strecke!

Das können Sie, aber nur, wenn der Dialog ein Warn- oder Bestätigungsdialog ist. Andere spezielle Dialoge können nicht durch javascript beendet werden, und können daher derzeit nicht interagiert werden. Dazu gehören die Dialoge "Datei speichern", "Passwort merken" (Firefox) und modale (IE) Dialoge. Wenn sie erscheinen, kann Selenium nur verzweifelt die Hände ringen.

Um dieses Problem zu lösen, können Sie eine Workaround verwenden (falls vorhanden); andernfalls müssen Sie den Test möglicherweise aus dem Ihrem automatisierten Korpus ausschließen. Für den "Speichern Datei"-Dialog in Firefox kann eine benutzerdefinierte Vorlage angegeben werden, wenn der über den RC eine benutzerdefinierte Vorlage angegeben werden, die immer dazu führt, dass die Datei immer an einen bestimmten Speicherort heruntergeladen wird, ohne den Benutzer zu fragen (siehe http://forums.openqa.org/thread.jspa?messageID=31350 ). Das Dialogfeld "Dieses Passwort speichern" sollte nicht mehr erscheinen, nachdem Sie gewählt haben. Derzeit gibt es kann man nicht viel gegen IE modale Dialoge.

Ich glaube mich zu erinnern, dass jemand dieses Problem mit einer AutoHotKey Skript, das den Dialog beendet hat.

0 Stimmen

Das Problem ist, dass es sich nicht um kleine Dialoge handelt, sondern um umfangreiche Schnittstellen, die getestet werden müssen. Ich werde wohl etwas anderes versuchen. Danke!

3voto

Tiquelou Punkte 459

Ich habe Selenium IDE verwendet, um jQuery Modals für einige Zeit jetzt zu testen, habe ich noch nie ein Problem. Hier sind die Dinge, die ich tun, um sicherzustellen, dass der Test ordnungsgemäß bei der Wiedergabe ausgeführt wird:

  • das Skript mit der geringstmöglichen Geschwindigkeit ausführen
  • Wenn sich das modale Fenster öffnet, verwende ich den Befehl waitForElementPresent, um das Vorhandensein von mindestens einem der konstituierenden Elemente auf der Seite zu überprüfen; wenn ein Element ordnungsgemäß geladen wird, kann man davon ausgehen, dass alle Elemente und damit das modale Fenster ordnungsgemäß geladen wurden.

Hoffentlich hilft das. Wenn Sie weitere Hilfe benötigen, können Sie den Code mit mir zusammen mit dem Fehler in der Ausführung, die IDE wirft Sie aus teilen.

2voto

0voto

Emy Jamalian Punkte 21

So behandle ich Popup-Alarme in Selenium IDE

Klicken Sie mit der rechten Maustaste auf das Element (in diesem Fall Ihr Pop-up-Fenster) und wählen Sie einen Befehl aus. Es gibt auch eine Funktion zum Anzeigen aller verfügbaren Befehle, die eine Hilfe sein könnte. Sie sollten AssertElementPreset verwenden und ich denke, der beste Locator in diesem Fall ist CSS. Sie können also AssertElementPresent wählen.

Oder

können Sie zwei Befehle in der Selenium IDE verwenden

selectWindow | null
verifyElementPresent | css=div.content

Ich hoffe, das hilft!

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X