Selenium WebDriver Plugin: Unterschied zwischen den Versionen

Aus expecco Wiki (Version 2.x)
Zur Navigation springen Zur Suche springen
Zeile 5: Zeile 5:


=Browser-Unterstützung=
=Browser-Unterstützung=
Das Plugin unterstützt die Browser Chrome/Chromium, Edge, Firefox, Internet Explorer und Opera. Für Safari unter OSX muss dieser zumindest in der Version 10 und OSX El Capitan vorliegen.
Das Plugin unterstützt die Browser Chrome/Chromium, Edge, Firefox, Internet Explorer und Opera. 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 \exept\expecco\packages\exept\expecco\plugin\seleniumWebDriver\lib. In manchen Fällen warnt expecco, dass eine Driver-Version möglicherweise nicht zum Browser passt. Das beudeutet, dass diese Kombination von uns nicht getestet wurde, sie kann trotzdem funktioneren. Neuere Versionen der Driver bekommen Sie an folgenden Adressen:

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 \exept\expecco\packages\exept\expecco\plugin\seleniumWebDriver\lib. In manchen Fällen warnt expecco, dass eine Driver-Version möglicherweise nicht zum Browser passt. Das beudeutet, dass diese Kombination von uns nicht getestet wurde, sie kann trotzdem funktioneren. Neuere Versionen der Driver bekommen Sie an folgenden Adressen:
{|
{|
|Chrome/Chromium
|Chrome/Chromium

Version vom 21. Juni 2018, 13:34 Uhr

Einleitung[Bearbeiten]

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, der das bisher verwendete Selenium RC ersetzt.

Browser-Unterstützung[Bearbeiten]

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

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 \exept\expecco\packages\exept\expecco\plugin\seleniumWebDriver\lib. In manchen Fällen warnt expecco, dass eine Driver-Version möglicherweise nicht zum Browser passt. Das beudeutet, dass diese Kombination von uns nicht getestet wurde, sie kann trotzdem funktioneren. Neuere Versionen der Driver bekommen Sie an folgenden Adressen:

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

Fü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. Das Plugin verwendet JavaScript. Sollten Sie dabei 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.

Verbindungsaufbau[Bearbeiten]

Verbindungseditor[Bearbeiten]

Mithilfe des Verbindungseditors können Sie schnell Verbindungen definieren, ändern oder aufbauen. 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: Erlaubt das Öffnen einer gespeicherten Einstellungsdatei (*.csf). Deren Einstellungen werden in den Editor übernommen. Bereits getätigte Eingaben ohne Konflikt bleiben dabei erhalten.
  2. Einstellungen aus Anhang laden: Erlaubt das Öffnen eines Anhangs mit Verbindungseinstellungen aus einem geöffneten Projekt. 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 in einem geöffneten 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[Bearbeiten]

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.

Remote-Verbindungen[Bearbeiten]

Wenn Sie einen Browser auf einem entfernten Rechner starten möchten, 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 \exept\expecco\packages\exept\expecco\plugin\seleniumWebDriver\lib. Starten Sie dann den Selenium-Sever mit

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

Standardmäßig wird der Server dann auf Port 4444 gestartet. Wenn Sie einen anderen Port verwenden wollen, können Sie diesen mit dem Flag -port 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 muss eventuell von der Firewall zugelassen werden.

Verbindungsbausteine[Bearbeiten]

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 Anhanng gespeichert haben, verwenden Sie den Baustein Connect From File.

Plugin-Einstellungen[Bearbeiten]

Wenn Sie standardmäßig bestimmte Browser-Installationen oder Driver 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 der Eintrag Selenium WebDriver Extension. Alles was sie dort eintragen wird dann für jede Verbindung verwendet, es sei denn in deren Verbindungseinstellungen ist etwas anderes angegeben.

Recorder[Bearbeiten]

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[Bearbeiten]

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-2024 eXept Software AG