Поскольку срок действия платформы закодированного пользовательского интерфейса истекает после версии Visual Studio 2019 (Устаревший закодированный пользовательский интерфейс), Microsoft рекомендует Appium с WinAppDriver для тестирования приложений Windows (Desktop и UWP). Вы можете использовать Appium (с WinAppDriver) или WinAppDriver напрямую для запуска тестов (WinAppDriver с или без Appium).
Напрямую WinAppDriver
Вот краткое описание работы непосредственно с WinAppDriver:
скачать и установить WinAppDriver:
Выпуск WinAppDriver
включить режим разработчика в настройках Windows
запустите WinAppDriver:
C:\Program Files (x86)\Драйвер приложения Windows\WinAppDriver.exe
создать новый проект модульного тестирования Visual Studio 2019 (.NET Framework)
добавьте пакет NuGet: Appium.WebDriver Microsoft.WinAppDriver.Appium.WebDriver (комментарий от Microsoft: рекомендуется использовать пакет NuGet WinAppDriver, чтобы в полной мере воспользоваться преимуществами расширенного ввода с API действий. )
добавьте новый класс DesktopSession:
public class DesktopSession
{
protected const string WindowsApplicationDriverUrl = "http://127.0.0.1:4723";
private const string NotepadAppId = @"C:\Windows\System32\notepad.exe";
protected static WindowsDriver<WindowsElement> session;
protected static WindowsElement editBox;
public static void Setup(TestContext context)
{
// Launch a new instance of Notepad application
if (session == null)
{
// Create a new session to launch Notepad application
var appCapabilities = new DesiredCapabilities();
appCapabilities.SetCapability("app", NotepadAppId);
appCapabilities.SetCapability("platformName", "Windows");
appCapabilities.SetCapability("deviceName ", "WindowsPC");
session = new WindowsDriver<WindowsElement>(new Uri(WindowsApplicationDriverUrl), appCapabilities);
Assert.IsNotNull(session);
Assert.IsNotNull(session.SessionId);
// Set implicit timeout to 1.5 seconds to make element search to retry every 500 ms for at most three times
session.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(1.5);
// Keep track of the edit box to be used throughout the session
editBox = session.FindElementByClassName("Edit");
Assert.IsNotNull(editBox);
}
}
public static void TearDown()
{
// Close the application and delete the session
if (session != null)
{
session.Close();
try
{
// Dismiss Save dialog if it is blocking the exit
session.FindElementByName("Nicht speichern").Click();
}
catch { }
session.Quit();
session = null;
}
}
[TestInitialize]
public void TestInitialize()
{
// Select all text and delete to clear the edit box
editBox.SendKeys(Keys.Control + "a" + Keys.Control);
editBox.SendKeys(Keys.Delete);
Assert.AreEqual(string.Empty, editBox.Text);
}
}
- Измените код из класса UnitTest1
[TestClass]
public class UnitTest1 : DesktopSession
{
[TestMethod]
public void EditorEnterText()
{
Thread.Sleep(TimeSpan.FromSeconds(2));
editBox.SendKeys("abcdeABCDE 12345");
Assert.AreEqual(@"abcdeABCDE 12345", editBox.Text);
}
[ClassInitialize]
public static void ClassInitialize(TestContext context)
{
Setup(context);
}
[ClassCleanup]
public static void ClassCleanup()
{
TearDown();
}
}
(пример кода в основном скопирован из WinAppDriver .NotepadTest).
Appium с WinAppDriver
Если вы хотите запускать тесты с помощью Appium, на вашем компьютере должна быть установлена правильная версия WinAppDriver. Установщик Appium также должен установить WinAppDriver правильной версии на вашем компьютере (пожалуйста, установите Appium для всех пользователей). В моем случае, к сожалению, это не сработало. Итак, я смотрю в файле:
C:\Program Files\Appium\resources\app\node_modules\appium\node_modules\appium-windows-driver\lib\installer.js
Здесь вы найдете правильную версию и путь загрузки:
const WAD_VER = "1.1";
const WAD_DL = `https://github.com/Microsoft/WinAppDriver/releases/download/v${WAD_VER}/WindowsApplicationDriver.msi`;
Если вы установили правильный WinAppDriver, вы можете запустить Appium.
Важно: вы должны изменить ApplicationDriverUrl
protected const string WindowsApplicationDriverUrl = "http://127.0.0.1:4723/wd/hub";
Инструменты:
выпуски WindowsAppDriver и UI REcorder или загрузить репозиторий WinAppDriver и создайте WinAppDriverUIRecorder.sln в подкаталоге tools\UIRecorder
Знакомство с WinAppDriver UI Recorder
- inspect.exe: требуется Windows SDK (смотрите в C:\Program Files (x86)\Windows Kits\10\bin)
Другие ссылки: Часто задаваемые вопросы по WinAppDriver Appium
person
HHenn
schedule
18.07.2019