Archiv der Kategorie: Selenium/WebDriver

Aktueller Stand zu Record-and-playback tools im Selenium Umfeld

Allgemein tut sich das Selenium Projekt mit Record-and-playback-tools schwer. Von den Core-Committern nicht immer ganz ernst genommen, fristen sie im Selenium Projekt an sich ein Außenseiter-Dasein, obwohl sie ein guter Einstieg ins Testautomatisieren sein könnten, wenn sie denn funktionierten. Vermutlich ist das auch der Grund warum ich aktuell kein vernünftig einsetzbares Tool im Selenium-Umfeld finde.
 
Selenium IDE
Der offizielle Recorder vom Selenium-Projekt (github), der nur als Firefox-Plugin angeboten wird, wo aber der letzte commit schon mehr als ein Jahr her ist. Dementsprechend läuft er auf dem aktuellen Firefox nicht mehr.
 
Selenium Builder
Eigentlich vielversprechender Recorder von Zarkonnen, der ausschließlich als Firefox Plugin läuft – jedoch schon einige Zeit (mind. ein Monat) nicht mehr mit aktueller Firefox-Version kompatibel ist. Vielleicht geht’s hier ja mal irgendwann wieder weiter.
 
Katalon Recorder
Der Katalon Recorder wurde am 9.11.2017 mit Version 2.0.6 erstmals veröffentlicht. Er ist auch der einzige Selenium Recorder, der in der Firefox Addon-Bibliothek aus einem aktuellen Firefox heraus angezeigt wird. Leider hielt er meinem Minimaltest nicht stand: google.de öffnen, ‚Bundestag‘ eingeben, Suchbutton klicken, erstes Suchergebnis anklicken. Meinen Testschritt Suchbutton klicken hat er einfach bei meinen zwei Recording-Versuchen ignoriert und keinen entsprechenden automatischen Testschritt angelegt. Wenn er bei diesem Minimaltest schon fehlschlägt, lohnt sich aktuell für mich auch das tiefere Einsteigen in den Recorder nicht. Vielleicht schafft das Katalon-Team mit der Zeit, was das offizielle Selenium-Projektteam mangels Ressourcen und Prioritäten nicht schafft: einen funktionierenden Selenium-Recorder dauerhaft zu maintainen.
 

WinAppDriver: Drag'n'Drop Beispiel

Vorher natürlich WinAppDriver installieren und starten.

using System;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using OpenQA.Selenium.Remote;
using OpenQA.Selenium.Appium.Windows;
using System.Threading;
namespace UnitTestProject2
{
    [TestClass]
    public class UnitTest1
    {
        [TestMethod]
        public void NotepadTest()
        {
            DesiredCapabilities desiredCapabilities = new DesiredCapabilities();
            desiredCapabilities.SetCapability("app", @"C:\Windows\System32\notepad.exe");
            WindowsDriver<WindowsElement> session = new WindowsDriver<WindowsElement>(new Uri("http://127.0.0.1:4723"), desiredCapabilities);
            Thread.Sleep(2000); // damit man die Drag'n'Drop Action besser sieht
            WindowsElement eckeInNotepad = session.FindElementByName("Ziehpunkt");
            session.Mouse.MouseMove(eckeInNotepad.Coordinates, 15, 15);
            Thread.Sleep(2000); // damit man die Drag'n'Drop Action besser sieht
            session.Mouse.MouseDown(eckeInNotepad.Coordinates);
            session.Mouse.MouseMove(eckeInNotepad.Coordinates, -200, 200);
            session.Mouse.MouseUp(null);
        }
    }
}

WinAppDriver zum Laufen bringen

1.a.) Download .msi von WinAppDriver und installiere.
1.b.) Dann per cmd starten: C:\Program Files (x86)\Windows Application Driver\WinAppDriver.exe
2.) In Visual Studio:

  • Neues Projekt hinzufügen -> Visual C# -> Test -> Komponententestprojekt (.NET Framework)
  • Extras -> NuGet-Paket-Manager -> NuGet-Pakete für Projektmappe verwalten… -> Appium.WebDriver für dieses Projekt installieren
  • Folgenden Test einfach laufen lassen:
using System;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using OpenQA.Selenium.Remote;
using OpenQA.Selenium.Appium.Windows;
namespace UnitTestProject2
{
    [TestClass]
    public class UnitTest1
    {
        [TestMethod]
        public void NotepadTest()
        {
            DesiredCapabilities desiredCapabilities = new DesiredCapabilities();
            desiredCapabilities.SetCapability("app", @"C:\Windows\System32\notepad.exe");
            WindowsDriver<WindowsElement> session = new WindowsDriver<WindowsElement>(new Uri("http://127.0.0.1:4723"), desiredCapabilities); // 127.0.0.1:4723 zielt auf den WinAppDriver-Server
            WindowsElement editBox = session.FindElementByClassName("Edit");
            editBox.SendKeys("abc");
            Assert.AreEqual("abc", editBox.Text);
        }
    }
}

.
3.) Mit Inspect kann man die Pfade ermitteln. Liegt nach Installation von Windows SDK 8.1 z.B. hier: C:\Program Files (x86)\Windows Kits\10\bin\x86
.
.
.

(Nicht gelöst:) Sourcecode zum Laufen bringen

Download den Sourcecode
.sln per Visual Studio öffnen
Win 10 API installieren, wozu man aufgefordert wird. Anschließend erscheint eine solche Meldung:

Windows-Suche: Für Entwickler-Einstellungen -> Entwicklermodus (bzw. Apps querladen falls durch Group policy gesperrt) einschalten.
Scheiterte evtl. an der group policy bei meinem Arbeitsplatzrechner, denn bei der Win 10 – VM gab es diesen Fehler nicht: