WinAppDriver: Beispiel zum Lokalisieren von Desktop-Elementen (mit Inspect und XPath)

Verwendung von Microsoft inspect (aus Windows SDK) zum Lokalisieren von Desktop-Elementen:

* refresh von inspect durchführen (siehe folgenden Screenshot) -> sonst landet das automatische Tracking nicht an der richtigen Stelle im Baum
* automatisches Tracking einschalten (siehe folgenden Screenshot)
* mit Mauszeiger auf das zu lokalisierende Element gehen
* gehe hoch zu root element des Fensters, da dieses einen eindeutigen Namen hat
* baue einen XPath zum
* leider fehlt dem inspect das feature zum Validieren des XPaths, so dass wir das erst beim Ausführen des entsprechenden Unittests in Visual Studio sehen können


 

C# Unittest beinhaltet den WinAppDriver-UI-Test:
(Voraussetzung ist natürlich ein laufender WinAppDriver-Server)
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://localhost:4723"), desiredCapabilities);
           
            WindowsElement textFeld = session.FindElementByXPath("//*[contains(@Name,'Editor')]/child::*[1]"); 
            textFeld.SendKeys("Simon!");
            String textInTextFeld = textFeld.Text;
        }
    }
}