Testautomatisierung mit Selenium

Testautomatisierung mit Cypress vs. Selenium Cypress und Selenium sind bekannte Testwerkzeuge, die für die Automatisierung von Webapplikationen eingesetzt werden. Selenium ist ein Open-Source-Automatisierungsframework, das in unterschiedlichen Produktversionen vorhanden ist.  Die Automatisierungslösung Selenium existiert schon seit 2004 und ist ein etabliertes Produkt mit einer großen Nutzerbasis weltweit. Das End-to-End-Tool Cypress hingegen ist seit 2014 ein Newcomer auf dem Markt, welches sich wie Selenium für die Automatisierung von Webapplikationen eignet. Cypress hat in den letzten Jahren durch seine […]

Vor einigen Jahren haben wir in einem unserer Blog Beiträge für die Lösungsmöglichkeit berichtet, wie man auf HTML 5 Seiten Drag & Drop Testautomatisierung mit HTML 5 implementeiren kann.

Der Hintrgrund war, dass die offizielle Selenium Drag & Drop API aus der Actions Klasse auf HTML 5 Seiten nicht richtig funktioniert und selbst die Referenz-Implementierungen von W3C Standard nicht autoamtisieren kann. Der zugehörige Bug-Request für Selenium Web Driver wurde bereits im Jahr 2012 angelegt. Leider ist er nach inzwischen 8 Jahren immer noch ungelöst 🙁

Da die Notwenigkeit der Drag & Drop Testautomtisierung mit Selenium aufgrund von immer komplexer Geschäftsapplikationen im Web immer häufiger angefragt wird, haben wir die Drag&Drop Implementeirung auf GitHub als Open Source Projekt bereitgestellt und ein fertiges Nuget Paket für C# veröffentlicht.

Im Rahmen dieser Implementierung wird die bereits beschriebene alternative Drag & Drop Umsetzung mit einem JavaScript umgesetzt, das automatisch augerufen wird.

Bei der Verwendung von Nuget Paket für Drag&Drop kann die Testautomatisierung von Drag&Drop in nur wenigen Schritten realisiert werden:

  1. Drag & Drop Nugen Paket SeleniumDragDrop in C# Solution einbinden
  2. Quell- und Ziel-Elemente für Drag & Drop auf der Web Seite finden
  3. DragDropHelper instanzieren
  4. Drag & Drop Operation für Quell- und Ziel-Elemente aufrufen

Die Automatisierung von Drag&Drop auf der W3C Refernz-Seite für HTML 5 Drag & Drop kann damit etwa wie folgt aussehen:

    IWebDriver driver = new ChromeDriver(Environment.CurrentDirectory);
    try
    {
        driver.Navigate().GoToUrl("https://www.w3schools.com/html/html5_draganddrop.asp");

        IWebElement sourceEl = driver.FindElement(By.Id("drag1"));
        IWebElement targetEl = driver.FindElement(By.Id("div2"));

        SeleniumDragDrop.DragDropHelper dragdrop = new SeleniumDragDrop.DragDropHelper(driver);
        dragdrop.DragAndDrop(sourceEl, targetEl);

        Assert.IsNotNull(targetEl.FindElement(By.Id("drag1")));
    }
    finally
    {
        driver.Quit();
    }

Viel Spaß beim Ausprobieren.

Selenium Framework bietet per sé sehr einfache Möglichkeit an die Tests mit unterschiedlichen Web Browsern durchzuführen und damit die Cross-Browser Test Strategie umzusetzen. Während die Einbindung von gängigen Browsern wie Chrome oder Firefox i.d.R. unproblematisch erfolgt, gilt es bei der Einbindung von Edge und Internet Explorer einige Besonderheiten zu beachten, die in diesem Blog zusammengefasst werden. Die Lösungen werden nachfolgend mit C# aufgezeigt. Die Vorgehensweise ist aber auch auf andere Sprachen wie Java übertragbar.

Weiterlesen

Seit Firefox 52 gibt es eine Besonderheit:
Wenn auf einer Webseite ohne HTTPS (SSL Zertifikat), ein Passwort eingetippt wird, erscheint folgende Warnung: This connection is not secure. Logins entered here could be compromised.

Das Ganze ist natürlich sehr sinnvoll, denn das Passwort wird in diesem Fall im Klartext  übertragen und kann z.b. in nicht gesicherten WLAN-Netzen mit einfachsten Mitteln ausgelesen werden.

In der Testautomatisierung bereitet uns dieses „Tooltipp“ aber ab und zu Probleme.
Denn was passiert, wenn der dazugehörige Login Button direkt unter dem Passwortfeld ist? Richtig! Statt auf den Button zu klicken, erfolgt der Klick auf die Warnung und diese leitet uns auf die Seite „https://support.mozilla.org/en-US/kb/insecure-password-warning-firefox“ weiter. Das hat natürlich einen fehlgeschlagenen Testfall zur Folge.

Hier ein Tipp wie diese Warnung ausgeschaltet werden kann:

Weiterlesen

Nachdem die Selenium Conference in London bereits fast 4 Monate her ist und die nächste bereits in wenigen Wochen statt findet, möchte ich meine persönliche Top 5 der Präsentationen vorstellen, die keiner verpassen sollte, der in der beruflich oder privat mit der Testautomatisierung beschäftigt.
Weiterlesen

Tutorial-Ziel

Wir alle haben ab und zu Aufgaben, die wir gerne automatisieren möchten. Mit diesem Tutorial zeige ich, wie mit Hilfe von Selenium, bestimmte Aktionen in WordPress automatisiert werden können.
Ziel des Tutorials ist, automatisiert durch alle vorgegebenen Beiträge zu gehen und in jedem Beitrag eine bestimmte Kleinigkeit zu ändern und zu speichern.

In dem ersten Teil wird nochmal die komplette Einrichtung beschrieben, das ist bereits in einem anderen Tutorial auf der Seite ähnlich zu finden, wegen der Vollständigkeit habe ich das aber hier noch einmal hinzugefügt.

Weiterlesen

Teil 2 des Selenium Testautomatisierungstutorials

Weiterlesen

Teil 3 – Selenium Testautomatisierungstutorial

Weiterlesen

Die neue Selenium Version 2.46.0 steht jetzt zur Verfügung. Diese kann wie immer auf der Selenium Download Seite bezogen werden:
http://www.seleniumhq.org/download/

Die wichtigsten Änderungen umfassen u.a.:

  • Support vom Firefox Driver unter openBSD
  • Aktualisierter HtmlUnitDriver
  • Kritischer Fehler im Selenium Server behoben (Java Versionsdiskrepanz)

Detaillierte Änderungsbeschreibung ist unter folgendem Link zu finden: https://raw.githubusercontent.com/SeleniumHQ/selenium/master/java/CHANGELOG

 

Meine persönliche Meinung ist, dass Java wohl die populärste Programmiersprache für Selenium Projekte ist. In diesem Beitrag möchte ich zeigen, wie du damit am einfachsten anfängst. Weiterlesen