Speichern Sie Variablen, Echo, Warnung und PopUp-Verwaltung in Selenium IDE
⚡ Intelligente Zusammenfassung
Befehle speichern in Selenium Die IDE speichert Laufzeitwerte in benannten Variablen, gibt sie mit dem Befehl „echo“ im Protokoll aus, und eine spezielle Befehlsfamilie kümmert sich um Warnmeldungen, Bestätigungsdialoge und das Umschalten zwischen mehreren Browserfenstern.

In diesem Tutorial lernen Sie die Store-Befehle, den Echo-Befehl sowie die Behandlung von Warnmeldungen und Popups kennen. Selenium IDEZusammengenommen verwandeln diese Befehle ein feststehendes aufgezeichnetes Skript in ein Skript, das auf die Rückgabewerte der Anwendung zur Laufzeit reagiert.
⚠️ Hinweis zu den Versionen: Die folgenden Screenshots stammen aus dem Original. Firefox-Plugin Selenium Die IDE und die Befehle verwenden ihre CamelCase-Selenese-Namen. Das aktuelle Chrome, Firefox Die Edge-Erweiterung behält dasselbe Verhalten bei, schreibt aber die meisten Befehlsnamen mit Leerzeichen. Eine Karteping Die Tabelle befindet sich gegen Ende dieses Artikels, und alle Originalbefehle und Screenshots wurden wie veröffentlicht beibehalten.
Selenium IDE-Variablen
Shop
Zum Speichern von Variablen Selenium IDE, wir verwenden die Shop an Befehl. Die folgende Abbildung speichert den Wert „tutorial“ in einer Variablen namens „myVariable“.
Um auf die Variable zuzugreifen, schließen Sie sie einfach in das Symbol ${…} ein. Um beispielsweise den Wert von „myVariable“ in das Textfeld „userName“ einzugeben, Mercury Touren: Geben Sie ${myVariable} in das Feld „Wert“ ein.
Echo-Befehl in Selenium IDE
Eine gespeicherte Variable ist unsichtbar, bis sie ausgegeben wird, und genau das ist es, was die Echo Der Befehl tut dies. Er schreibt während der Wiedergabe eine Meldung in das IDE-Protokollfenster, wodurch er die schnellste Möglichkeit bietet, zu bestätigen, dass ein Speicherbefehl das Erwartete erfasst hat, bevor Sie darauf aufbauende Assertions erstellen.
Der Befehl akzeptiert beide Formen:
- Eine Zeichenkette in Literalform. Füge den Text in die Target Feld, zum Beispiel Anmeldevorgang abgeschlossen, um einen Kontrollpunkt in einem langen Skript zu markieren.
- Eine Variable. Setzen Sie ${myVariable} in die Target Anstelle des Namens wird das Feld und der gespeicherte Wert ausgegeben.
Zwei Gewohnheiten machen `echo` weitaus nützlicher, als es zunächst scheint. Gib eine Variable direkt nach dem `store`-Befehl aus, der sie erzeugt, damit ein Fehler sofort sichtbar wird. tracVerwenden Sie die Aufzeichnung anstelle der Bestätigung zwanzig Schritte später. Fügen Sie jeder Meldung den zugehörigen Schritt voran, da im Protokollfenster alle Befehle in einer flachen Liste angezeigt werden. Beachten Sie, dass `echo` nur ins Protokoll schreibt – es ändert niemals die Seite und führt niemals zu einem Fehlschlag bei einem Test. Daher kann es bedenkenlos dauerhaft in einem Skript belassen werden.
StoreElementPresent
Dieser Befehl speichert je nach Vorhandensein des angegebenen Elements entweder „true“ oder „false“. Das folgende Skript speichert den booleschen Wert „true“ in „var1“ und „false“ in „var2“. Zur Überprüfung verwenden wir den Befehl „echo“, um die Werte von var1 und var2 anzuzeigen. Die Basis URL für die untenstehende Abbildung wurde auf die Mercury Homepage von Tours.
StoreText
Dieser Befehl speichert den Inhalt eines Elements in einer Variablen. Die folgende Abbildung speichert den Inhalt des h1-Tags auf der Facebook-Anmeldeseite in einer Variablen namens „textVar“.
Da es sich um das einzige Element dieser Art auf der Seite handelt, können wir bedenkenlos „css=h1“ als Ziel verwenden. Die Abbildung unten zeigt, dass… Selenium Die IDE konnte die Zeichenkette „Sign Up“ in der Variable „textVar“ speichern, da echo ihren Wert korrekt ausgegeben hat.
Warnungen, Popup und mehrere Windows
Benachrichtigungen sind wahrscheinlich die einfachste Form von Pop-up-Fenstern. Selenium Zur Behandlung von Warnungen werden die folgenden IDE-Befehle verwendet:
| Warnmeldungen | Verwendung |
|---|---|
|
AssertAlert affirmNotAlert |
Ruft die Warnmeldung ab und vergleicht sie mit einem von Ihnen angegebenen Zeichenfolgenwert. |
|
AssertAlertPresent AssertAlertNotPresent |
Gibt an, ob eine Warnung vorliegt oder nicht. |
| storeAlert | Ruft die Warnmeldung ab und speichert sie in einer von Ihnen angegebenen Variable. |
| storeAlertPresent | Gibt TRUE zurück, wenn eine Warnung vorliegt, andernfalls FALSE. |
|
überprüfenAlert verifyNotAlert |
Ruft die Warnmeldung ab und überprüft, ob sie mit dem von Ihnen angegebenen Zeichenfolgenwert übereinstimmt. |
|
verifyAlertPresent verifyAlertNotPresent |
prüft, ob eine Warnung vorliegt oder nicht. |
Beachten Sie beim Arbeiten mit Warnungen diese beiden Dinge:
- Selenium Die IDE klickt automatisch auf die Schaltfläche „OK“ im Warnfenster, sodass Sie die eigentliche Warnung nicht sehen können.
- Selenium Die IDE kann keine Warnmeldungen verarbeiten, die innerhalb der onload()-Funktion der Seite ausgelöst werden. Sie verarbeitet nur Warnmeldungen, die generiert werden, nachdem die Seite vollständig geladen wurde.
In diesem Beispiel verwenden wir den Befehl storeAlert, um zu zeigen, dass obwohl Selenium Die IDE zeigte die eigentliche Warnmeldung nicht an, konnte die Nachricht aber dennoch abrufen.
Schritt 1) In Selenium IDE, Basis festlegen URL zu http://jsbin.com. Die vollständige URL ist http://jsbin.com/usidix. Diese jsbin-Codebeispiele stammen aus der Zeit von Firefox-plugin era und kann möglicherweise nicht mehr aufgelöst werden; jede Seite mit einer Schaltfläche, die eine Warnung auslöst, reproduziert das gleiche Ergebnis.
Schritt 2) Erstellen Sie das Skript wie unten gezeigt. Der Befehl „click“ zielt auf die Schaltfläche „Los!“ ab, „storeAlert“ erfasst die Nachricht in „alertMessage“ und „echo“ gibt sie aus.
Schritt 3) Führen Sie das Skript aus, erwarten Sie aber nicht, die eigentliche Warnmeldung zu sehen. Im untenstehenden Protokollbereich wird die erfasste Meldung angezeigt, obwohl der Dialog nie sichtbar war.
Bestätigungen
Bestätigungen werden als Pop-ups mit den Schaltflächen „OK“ und „ABBRECHEN“ angezeigt, im Gegensatz zu Warnmeldungen, die nur die Schaltfläche „OK“ bieten. Die Befehle zur Bearbeitung von Bestätigungen entsprechen denen für Warnmeldungen.
- assertConfirmation / assertNotConfirmation
- assertConfirmationPresent / assertConfirmationNotPresent
- StoreBestätigung
- storeConfirmationPresent
- Bestätigung überprüfen / Nicht-Bestätigung überprüfen
- Bestätigung vorhanden / Bestätigung nicht vorhanden
Darüber hinaus sagen diese Befehle Selenium Welche Taste soll ich wählen, OK oder ABBRECHEN?
- chooseOkOnNextConfirmation / chooseOkOnNextConfirmationAndWait
- Wählen SieAbbrechenBeiNächsteBestätigung
Platzieren Sie diese Befehle bevor der Befehl, der das Bestätigungsfeld auslöst, sodass Selenium Die IDE weiß im Voraus, welche Option zu wählen ist. Auch hier gilt: Sie werden während der Skriptausführung kein Bestätigungsfenster sehen.
Lassen Sie uns eine Webseite mit einem Button testen, der so programmiert wurde, dass er meldet, ob der Benutzer OK oder ABBRECHEN gedrückt hat.
Schritt 1) In Selenium IDE, Basis festlegen URL zu http://jsbin.com. Die vollständige URL ist http://jsbin.com/enifaf.
Schritt 2) Erstellen Sie das Skript wie unten gezeigt. Dieses Mal drücken wir zuerst die OK-Taste.
Schritt 3) Führen Sie das Skript aus und stellen Sie fest, dass die eigentliche Bestätigung nicht angezeigt wird, die Webseite aber weiterhin meldet, welche Schaltfläche gedrückt wurde. Selenium IDE gedrückt.
Schritt 4) Ersetzen Sie den Befehl `chooseOkOnNextConfirmation` durch `chooseCancelOnNextConfirmation` und führen Sie das Skript erneut aus. Die Seite zeigt nun die gegenteilige Auswahl an.
Mehrere Windows
Wenn Sie auf einen Link klicken, der ein separates Fenster öffnet, müssen Sie zuerst anweisen Selenium In der IDE muss das Fenster ausgewählt werden, bevor auf die darin enthaltenen Elemente zugegriffen werden kann. In älteren IDEs wurde der Fenstertitel als Locator verwendet.
Mit dem Befehl selectWindow können wir zwischen Fenstern wechseln.
Wir verwenden den Link http://jsbin.com/ocinaj/1 mit dem Titel „First Window“. Der Hyperlink „hier“ auf dieser Seite öffnet Facebook in einem neuen Fenster. Anschließend geben wir folgende Anweisungen: Selenium IDE, um Folgendes zu tun:
- Übertragen Sie die Steuerung vom übergeordneten Fenster auf das neu geöffnete Facebook-Fenster mithilfe des Befehls selectWindow und dem Fenstertitel als Locator.
- Überprüfen Sie den Titel des neuen Fensters.
- Wählen Sie das ursprüngliche Fenster erneut mit dem Befehl selectWindow und dem Ziel „null“ aus.
- Überprüfen Sie den Titel des aktuell ausgewählten Fensters.
Der obige Plan lässt sich in die hier dargestellte vierstufige Abfolge übersetzen.
Schritt 1) Die Basis festlegen URL zu http://jsbin.com.
Schritt 2) Erstellen Sie das Skript wie unten gezeigt.
Wir benötigen den Pause-Befehl, um zu warten, bis das neu geöffnete Fenster geladen ist, bevor wir seinen Titel lesen können.
Schritt 3) Führen Sie das Skript aus. Beachten Sie, dass die Testfall bestanden, was bedeutet, dass wir erfolgreich zwischen den Fenstern wechseln und deren Titel überprüfen konnten.
Denken Sie immer daran, dass durch die Einstellung des selectWindow-Ziels auf „null“ automatisch das übergeordnete Fenster ausgewählt wird – in diesem Fall das Fenster, in dem sich das Element „link=here“ befindet.
Hinweis: Facebook hat den Seitentitel seit der Erstellung dieses Tutorials geändert. Passen Sie den erwarteten Titel im Skript entsprechend an.
Modernes Selenium IDE-Entsprechungen dieser Befehle
Das FirefoxDas IDE-Plugin wurde eingestellt, als Firefox Umstellung auf die WebExtensions-Architektur und das aktuelle Chrome, Firefox Die Edge-Erweiterung hat die meisten Selenese-Befehle in eine durch Leerzeichen getrennte Form umbenannt. Das Verhalten bleibt unverändert, daher genügt die folgende Tabelle, um die oben genannten Skripte für eine aktuelle Installation zu lesen.
| Legacy-Befehl in diesem Tutorial | Aktuell Selenium IDE-Befehl |
|---|---|
| Shop an | Shop an |
| Echo | Echo |
| speichernText | speichern |
| storeElementPresent | speichern Sie das Element (oder stellen Sie sicher, dass das Element vorhanden ist) |
| assertAlert / verifyAlert | Alarm bestätigen / Alarm überprüfen |
| chooseOKOnNextConfirmation | Bei der nächsten Bestätigung bitte OK auswählen. |
| Wählen SieAbbrechenBeiNächsteBestätigung | Bei der nächsten Bestätigung „Abbrechen“ auswählen |
| selectWindow (title as target) | Fenster mit Handle=${handle} auswählen |
Zwei Unterschiede sind hervorzuheben. Eingabeaufforderungen, die im alten Artikel nicht behandelt wurden, haben nun eigene Befehle: Beantworten Sie die nächste Frage. plant die Antwort, bevor der Dialog erscheint, und Webdriver antwortet auf sichtbare Eingabeaufforderung Die Eingabe erfolgt in eine bereits geöffnete Eingabeaufforderung. Und das Umschalten zwischen Fenstern ist nicht mehr vom Seitentitel abhängig. Ausführen Fenstergriff Zuerst einen Handle erfassen, dann weitergeben handle=${yourHandle} um das Fenster auszuwählen. Diese Änderung behebt den oben beschriebenen Fehler, bei dem eine Website einfach ihre Seite umbenennt und das Skript das Fenster nicht mehr findet. Die offizielle Selenium IDE-Projektseite listet den vollständigen aktuellen Befehlssatz auf.













