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: