Я работал над выбором удобной для JS среды автоматизации пользовательского интерфейса для React Native в Windows, и первое решение, которое пришло мне на ум, — Detox. Через некоторое время я отказался от этого решения, потому что не существует общедоступной библиотеки серого ящика для приложений UWP, такой как EarlGrey для iOS. Затем я прибегаю к решению Appium + WinAppDriver. Есть два популярных WebDriver: WebDriverIO и selenium-webdriver. И WebDriverIO (см. описание в PR 4369), и selenium-webdriver (PR 7505) имеют проблемы с интеграцией с WinAppDriver. Далее я говорю только о selenium-webdriver.

Microsoft рекомендует использовать Selenium для тестирования веб-приложений и Appium with WinAppDriver для тестирования настольных и UWP-приложений.

WinAppDriver поддерживает тестирование приложений универсальной платформы Windows (UWP), Windows Forms (WinForms), Windows Presentation Foundation (WPF) и классических приложений Windows (Win32) на ПК с Windows 10.

selenium-webdriver — официальная привязка JavaScript WebDriver от проекта selenium. Но он не реализует Спецификацию мобильного JSON Wire Protocol, поэтому не поддерживает WinAppDriver.

Selenium — это большое сообщество, и API знаком многим. Поэтому я создаю selenium-appium, чтобы selenium-webdriver можно было автоматизировать с помощью WinAppDriver, и он обеспечивает:

  1. Поддерживает мобильный JSON Wire Locator от By2
  2. Машинопись
  3. Шаблон PageObject и удобная функция вроде Locator и waitForPageLoaded. Вместо того, чтобы сначала использовать webDriver.wait, а затем щелкнуть, он был объединен с локатором By2.click.

Пример калькулятора использования selenium-webdriver+WinAppDriver в Windows см. в примере

Подробнее об этом читайте в проекте selenium-appium