Selenium WebDriver Plugin

Aus expecco Wiki (Version 2.x)
Wechseln zu: Navigation, Suche

Einleitung

Mit dem Selenium WebDriver Plugin können Sie Webtests erstellen. Das Plugin kann (und wird üblicherweise) zusammen mit dem GUI-Browser verwendet werden, der das Erstellen von Tests unterstützt. Zudem ist damit das Aufzeichnen von Testabläufen möglich.

Das Selenium WebDriver Plugin ersetzt das bisherige Selenium Web Test Plugin. Zur Automatisierung wird Selenium WebDriver verwendet (Driver für gängige Browser werden von uns mitgeliefert), der das bisher verwendete Selenium RC ersetzt.

Browser-Unterstützung

Das Plugin unterstützt die Browser Chrome/Chromium, Edge, Firefox, Internet Explorer und Opera.
Safari unter OSX muss zumindest in der Version 10 vorliegen und OSX muss mindestens die El Capitan Version sein.

Für jeden Browser gibt es einen Driver, über den das Starten und Ansteuern der Browserfenster funktioniert. Diese müssen möglicherweise aktualisiert werden, wenn sich die Browser-Version ändert. Die verwendeten Driver liegen in Ihrem expecco-Installationsverzeichnis unter:

packages/exept/expecco/plugin/seleniumWebDriver/lib

(unter Microsoft Windows Betriebssystemen mit "\” anstatt "/")

In manchen Fällen warnt expecco, dass eine Driver-Version möglicherweise nicht zum Browser passt. Das bedeutet, dass diese Driver-Browser Kombination von eXept nicht getestet wurde, sie kann trotzdem funktioneren. Falls eine solche Warnung erscheint, können sie den "Diese Warning nicht mehr anzeigen"-Schalter umlegen; damit wird diese Driver-Browser Versionskombination in ihren Settings als "vertrauenswürdig" vermerkt, und in Zukunft nicht mehr gemeldet.

Neuere Versionen der Driver bekommen Sie an folgenden Adressen:

Chrome/Chromium ChromeDriver
Edge Microsoft WebDriver
Firefox GeckoDriver
Internet Explorer IEDriverServer
Opera OperaDriver

Bulb.pngBitte verifizieren Sie, daß die Version des Drivers kompatibel ist mit der des Browsers. Im Zweifel suchen Sie nach der Versionshistorie (z.B. für Chrome: https://chromedriver.storage.googleapis.com/2.25/notes.txt).

Bulb.pngFür den Internet Explorer ist zu beachten, dass der geschütze Modus für alle Zonen gleich eingestellt sein muss, damit eine Verbindung möglich ist. (im Internet Explorer: "Einstellungen" - "Internetoptionen" - "Sicherheit" öffnen, und bei allen 4 Zonen "geschützter" Bereich gleich einstellen; ansonsten kommen beim Verbindungsaufbau Fehler- und Warndialoge)

Bulb.pngDas Plugin verwendet für einige Funktionen JavaScript. Stellen Sie daher sicher, dass die Ausführung von JavaScript im verwendeten Browser erlaubt ist, insbesondere wenn Sie den GUI-Browser oder den Recorder verwenden wollen. Die Ausführung eines Tests ist auch ohne JavaScript möglich, solange keine Bausteine verwendet werden, die JavaScript ausführen. Sollten Sie einen Fehler der Art "org.openqa.selenium.JavascriptException: Error executing JavaScript" bekommen, stellen Sie sicher, dass die Ausführung von JavaScript im verwendeten Browser erlaubt ist und Browser- und zugehörige WebDriver-Version kompatibel sind.

Schneller Einstieg

Browser öffnen / verbinden

  • Starten Sie expecco
  • Klicken Sie auf "Neue Testsuite"
  • Klicken Sie auf das GUI-Browser Symbol (GUIBrowser.png)
  • Es erscheint der GUI-Browser in einem neuen Reiter
  • Klicken Sie auf "Verbinden" und wählen Sie "Selenium Testing" aus dann erscheint der Verbindungsdialog (Details siehe unten)
  • Im Verbindungsdialog geben Sie die zu testende Webseite ein (z.B. "http://www.myHost.com") und wählen den Browsertyp (z.B. "firefox") aus
  • Klicken Sie auf "Verbinden"
  • Ein Browser wird nun automatisch gestartet, und die Seite angezeigt.
  • Sobald die Verbindung steht, wird im GUIBrowser die Seitenstruktur als Baum angezeigt.

Recording aufnehmen

Klicken Sie auf das Recording Symbol im GUI-Browser.
Sie zeichnen nun direkt im Rekorder auf.
Während der Aufzeichnung können Sie zwischen diesen Werkzeugen wechseln:

Recorder Werkzeuge.png

Verbindungsaufbau

Verbindungseditor

Mit dem Verbindungseditor werden Verbindungen definiert, geändert und aufgebaut. Sie erreichen ihn, indem Sie den GUI-Browser öffnen und dort auf "Verbinden" klicken und dann "Selenium Testing (WebDriver)" auswählen.

SeleniumWebDriverConnectDialog.png

  1. Einstellungen aus Datei: Öffnet eine gespeicherte Einstellungsdatei (*.csf). Diese Einstellungen werden in den Editor übernommen. Bereits getätigte Eingaben ohne Konflikt bleiben dabei erhalten.
  2. Einstellungen aus Anhang laden: Öffnet einen Anhang im expecco Projekt mit Verbindungseinstellunge. Diese Einstellungen werden in den Editor übernommen. Bereits getätigte Eingaben ohne Konflikt bleiben dabei erhalten.
  3. Einstellungen in Datei speichern: Hier können Sie die eingetragenen Einstellungen in eine Datei (*.csf) speichern.
  4. Einstellungen in Anhang speichern: Hier können Sie die eingetragenen Einstellungen als Anhang im expecco-Projekt anlegen.
  5. Erweiterte Ansicht: Wechselt zur Ansicht für die Eingabe von erweiterten Einstellungen.
  6. Versionsinfo: Zeigt ein Fenster mit den verwendeten Versionen des Selenium-Servers, des ausgewählten Browser und dessen Driver an.
  7. Online-Dokumentation: Öffnet diese Online-Dokumentation.
  8. Verbindungsname: Tragen Sie hier den Namen ein, unter dem die Verbindung im GUI-Browser angezeigt werden soll. (Optional)
  9. URL: Tragen Sie hier die URL ein, die zu Beginn aufgerufen werden soll. Sie können das Feld auch frei lassen, dann wird ein leeres Browser-Fenster geöffnet. Um eine lokale Datei zu öffnen, verwenden Sie das Schema "file://", z.B. "file:///C:/Users/admin/Desktop/index.html".
  10. Browsertyp: Wählen Sie hier aus, welchen Browser Sie verwenden möchten. Stellen Sie sicher, dass dieser installiert ist und die Version des verwendeten Drivers zur Browserversion passt.
  11. Liste der erweiterten Einstellungen: Falls Sie erweiterten Einstellungen gesetzt haben, werden diese hier aufgelistet.

Erweiterte Einstellungen

Neben dem zu verwendenden Browser und der Start-URL kann man noch weitere Einstellungen für eine Verbindung vornehmen. Wechseln Sie dazu im Verbindungsmenü die Ansicht über den entsprechenden Menü-Eintrag. Je nachdem, welchen Browsertypen Sie ausgewählt haben, bekommen Sie andere Eingabefelder.

  • Remote Server: Falls der Browser auf einem anderen Rechner gestartet werden soll, als Ihr Test läuft, starten Sie dort einen Selenium-Server und geben Sie dessen Adresse in diesem Feld an. Natürlich können Sie auch eine lokale Adresse angeben, wenn nicht automatisch ein Selenium-Server gestartet werden soll. Wie Sie einen Selenium-Server starten lesen Sie im nächsten Abschnitt Remote-Verbindungen.
  • Binary: Geben Sie den Pfad zum Binary des ausgewählten Browsers an, wenn dieser nicht automatisch von Selenium gefunden wird oder Sie eine weitere Version installiert haben.
  • Driver: Zu jedem Browser wird ein spezieller Driver zur Automatisierung benötigt. Für neue Versionen des Browsers braucht man häufig auch eine neue Version des entsprechenden Drivers. Wenn Sie nicht den von expecco installierten Driver verwenden wollen, geben Sie hier einen entsprechenden Pfad an.
  • Firefox Profile: Für Firefox gibt es zusätzlich die Möglichkeit, ein Profil bzw. Template anzugeben, das spezifische Einstellungen enthält. Wenn keines angegeben wird, wird für jede Verbindung ein neues, leeres Profil angelegt.
  • Capabilities: Für Selenium-Verbindungen sind einige Capabilities definiert, mit denen sich Verbindungs-Eigenschaften festlegen lassen. Falls Capabilities verwenden möchten, können Sie sie in diesem Feld angeben. Schreiben Sie dazu <capability name>: <value> oder <capability name> = <value>; jeweils ein Eintrag pro Zeile. Außerdem können Sie hier auch Eigenschaften für den Firefox-Browser setzen. Die Eingabe hierfür erfolgt wie für die Capabilities, nur dass sie dem Namen der Eigenschaft ein $ voranstellen müssen.

Lokale-Verbindungen

Um einen Browser auf ihrer lokalen Maschine zu starten, werden lediglich die Felder "URL" sowie "Browsertyp" benötigt. Als Voreinstellung für den Browser wird "firefox" erscheinen.

Remote-Verbindungen

Um einen Browser auf einem entfernten Rechner zu starten, müssen Sie zunächst den Selenium-Server und die benötigten Driver auf diesen Rechner kopieren. Sie finden die Dateien in Ihrer expecco-Installation unter "packages/exept/expecco/plugin/seleniumWebDriver/lib". Starten Sie dann den Selenium-Sever (auf dem entfernten Rechner) mit:

java -jar selenium-server-standalone-3.6.0.jar

Standardmäßig wird der Server dann auf dem Port 4444 Verbindungen annehmen. Wenn Sie einen anderen Port verwenden wollen, können Sie diesen auf der Kommandozeile mit "-port <nr>" angeben. Um eine Verbindung über diesen Server herzustellen, geben Sie beim Verbindungsaufbau als Remote-Server <Server-Adresse>:4444/wd/hub an.

Das Starten des Selenium-Servers bz. die Verbindung muss eventuell von der Firewall zugelassen werden.

Verbindungsbausteine

Um eine Selenium-Verbindung in einem Testlauf zu starten und zu verwenden, gibt es in der SeleniumWebDriverLibrary im Ordner Connection verschiedene Bausteine. Der Verbindungsname hat dabei die Aufgabe, die Verbindung im weiteren Testverlauf zu identifizieren, wenn zwischen mehreren Verbindungen gewechselt wird, und zum Abbauen der Verbindung. Wenn Sie zum Verbinden Einstellungen verwenden wollen, die sie als Anhang gespeichert haben, verwenden Sie den Aktionsbaustein "[Connect From File]".

Plugin-Einstellungen

Wenn Sie eine bestimmte Browser-Installationen oder Driver standardmäßig als Voreinstellung verwenden möchten, können Sie diese in den Einstellungen des Plugins eintragen. Sie finden sie über das Menü unter dem Punkt "Extras" -> "Einstellungen" und dort unter "Erweiterungen" -> "Selenium WebDriver Extension". Die dortigen Einstellungen gelten als Voreinstellung für jede Verbindung, es sei denn in einer konkreten Verbindungseinstellungen ist etwas anderes angegeben.

Recorder

Die folgende Beschreibung des Recorders gilt prinzipiell für alle von expecco unterstützten GUI Technologien. Verhalten und Bedienung sind bis auf kleine technologiebedingte Unterschiede für alle gleich.

Besteht im GUI-Browser eine Verbindung mit einem Browserfenster, kann der integrierte Recorder verwendet werden, um einen Testabschnitt aufzunehmen. Sie starten den Recorder, indem Sie im GUI-Browser die entsprechende Verbindung auswählen und dann auf den Aufnahme-Knopf klicken. Für den Recorder öffnet sich ein neues Fenster. Für jeden Klick im Fenster wird eine Aktion aufgezeichnet. Weitere Aktionen stehen über das Menü zur Verfügung. Die aufgezeichneten Aktionen werden im Arbeitsbereich des GUI-Browsers angelegt. Daher ist es möglich, das Aufgenommene parallel zu editieren.

SeleniumWebDriverRecorder.png

Komponenten des Recorderfensters

  1. Aufnahme Pausieren: Wenn die Kontrollleuchte rot ist, nimmt der Recorder auf. Durch Klicken können Sie die Aufnahme anhalten. Die Kontrolleuchte leuchtet dann grau. In diesem Zustand können Sie weiter Aktionen über das Recorder-Fenster ausführen, sie werden aber nicht aufgezeichnet. Klicken Sie erneut, um die Aufnahme weiterzuführen.
  2. Aktualisieren: Holt das aktuelle Bild und den aktuellen Elementbaum vom Browser. Dies wird nötig, wenn die Anzeige des Recorders nicht mit dem tatsächlichen Browserinhalt übereinstimmt.
  3. Follow-Mouse: Das Element unter dem Mauszeiger wird im GUI-Browser ausgewählt.
  4. Element-Highlighting: Das Elements unter dem Mauszeiger wird rot umrandet.
  5. Element-Werkzeuge: Auswahl, mit welchem Werkzeug aufgenommen werden soll. Die gewählte Aktion wird bei einem Klick auf die Anzeige ausgelöst. Dabei stehen folgende Aktionen zur Verfügung:
    • Auto: Kombination aller anderen Werkzeuge. Für jeden Linksklick wird ein Klick aufgenommen, ein Drag And Drop für das Bewegen der Maus zwischen drücken und loslassen. Alle weiteren Aktionen sind über einen Rechtsklick auf ein Element erreichbar.
    • Klicken: Einfacher Klick auf das Element
    • Text setzen: Ermöglicht die Eingabe eines Textes in Eingabefelder
    • Text löschen: Löscht den Text aus Eingabefeldern
    • Text überprüfen: Überprüft, ob das Element einen bestimmten Text enthält
    • Attribute prüfen: Überprüft, ob der Wert eines bestimmten Attributes der Vorgabe entspricht
    • Drag-and-Drop: Ziehen und Fallenlassen eines Elements auf ein anderes, das diese Funktion unterstützt
    • Zu Frame wechseln: In den Kontext des ausgewählten Frames wechseln. Der Inhalt des Frames wird dadurch zugänglich.
    • Auswählen: Verschiedene Aktionen zur Auswahl von Einträgen, z.B. in Select-Menüs
    • Warten bis: Verschiedene Aktionen zum Warten auf bestimmte Ereignisse, die sich nicht auf ein Element beziehen
  6. Browser-Werkzeuge: Aktionen die sich nicht auf bestimmte Elemente beziehen. Folgende Aktionen stehen zur Auswahl:
    • Get: Aufrufen einer URL
    • Scrollen: Scrollen des Inhalts des Browser-Fensters
    • Titel prüfen: Überprüfen, ob der Titel der aktuellen Seite der Vorgabe entspricht
    • Zu Elternknoten wechseln: Aus einem Frame-Kontext in den darüber liegenden Kontext zurückkehren
    • Zu Fenster wechseln...: Zwischen verschiedenen Fenstern oder Tabs einer Verbindung wechseln
    • Warten bis: Verschiedene Aktionen zum Warten auf bestimmte Ereignisse, die sich auf das ausgewählte Element beziehen
  7. Seitennavigation: Aktionen zur Seitennavigation: eine Seite zurück, eine Seite vor und aktuelle Seite neu laden
  8. Alert-Behandlung: Wenn der Browser einen Alert anzeigt, klicken Sie auf diesen Button, um die Aktionen zur Alert-Behandlung auswählen zu können.
  9. Onlinedokumentation: Öffnet diese Online-Dokumentation.
  10. Fenster an Bild anpassen: Ändert die Größe des Fensters so, dass der Screenshot vollständig angezeigt werden kann.
  11. Bild an Fenster anpassen: Skaliert den Screenshot auf eine Größe, mit der er die volle Größe des Fensters ausnutzt.
  12. Skalierung: Ändert die Skalierung des Screenshots. Kann auch über den Schieberegler rechts daneben angepasst werden.
  13. Kontrollleuchte: Zeigt den Zustand des Recorders an
    grün: Der Recorder ist bereit
    rot: Der Recorder ist blockiert, weil die Anzeige und die Elementliste aktualisiert werden
    grau: Der Recorder kann nicht mehr verwendet werden, da die Verbindung fehlerhaft oder geschlossen ist

Portierung alter Selenium-Tests

Dieses Plugin ersetzt das bisherige Selenium Web Test Plugin. Dieses basiert auf Selenium RC, das in Zukunft nicht mehr unterstützt wird. Der Nachfolger von Selenium RC ist Selenium WebDriver, auch Selenium 2 genannt. Ebenso ist auch das Aufzeichnen von Tests mit Selenim IDE veraltet, da das Plugin von neueren Browsern nicht mehr unterstützt wird. Das Selenium WebDriver Plugin verwendet stattdessen einen eigenen Recorder.

Tests, die mit dem alten Selenium Web Test Plugin erstellt wurden und die SeleniumLibrary verwenden, können über Selenium WebDriver ausgeführt werden. Setzen Sie dazu in den Plugin-Einstellungen von "Webtest Legacy (Selenium)" den Haken bei "WebDriver für die Ausführung verwenden". Testen Sie dann, ob die Tests wie bisher ablaufen. Für den überwiegenden Teil der Bausteine sollte es dabei keine Probleme geben.



Copyright © 2014-2018 eXept Software AG