Selenium Testautomation на Windows Desctop App с Winium (Java)

https://github.com/2gis/Winium

Winium = Windows + Selenium
открытый исходный код
работает со всеми языками, совместимыми с WebDriver (Java, Python, …)
только для клиентских приложений на Windows (не IOS или Linux).

Необходимые условия

Microsoft .NET Framework 4.5.1
Winium.Desktop.Driver.exe

Некоторые другие зависимости, которые загружаются с помощью файла Maven, как указано в POM-файле ниже:

добавить зависимости в pom-файл

скачать winuiumDriver с github
appPath: поместите его куда-нибудь в проводнике windows

Код

Инициируя драйвер Winium с помощью класса Winiumdriver, мы передаем URL сервера Winium и путь нашего настольного приложения, на котором будет выполняться автоматизация.

URL сервера можно получить, щелкнув на загруженном файле Winium.desktop.driver.exe.

... throws MalformedURLException

DesktopOptions desktopOptions = new DesktopOptions();
desktopOptions.setApplicationPath(configFileReader.getAppPath());   desktopOptions.setKeyboardSimulator(KeyboardSimulatorType.BasedOnWindowsFormsSendKeysClass);
//winiumDriver with URL:: localhost:9999, every call we make goes through this driver .... 
winiumDriver = new WiniumDriver(new URL("http://localhost:9999"), desktopOptions);

Вход в полноэкранный режим Выход из полноэкранного режима

Инициируя драйвер Winium с помощью класса Winiumdriver, мы передаем URL сервера Winium и путь нашего настольного приложения, на котором будет выполняться автоматизация.

3 условия

путь к драйверу winium и настройка
запуск драйвера winium (dobbleclick)
запустить тесты

как проинспектировать элементы десктопа (или Java Forms-based)?

inspect.exe для определения локаторов элементов в приложениях Windows.
https://kb.froglogic.com/squish/howto/getting-information-toolkits-gui-controls-windows/
Мы можем идентифицировать элемент, используя имя, ID и xpath.

В общем и целом:
Основное различие между Selenium и Winium заключается в том, что Selenium автоматически создает свою сессию на localhost с уникальным портом, а в Winium нам приходится создавать сессии вручную через его exe-файл. Кроме того, запуск службы автоматизации через Winium требует от пользователя запуска локального сервера, поддерживающего скрипт, т.е. Winium server, в то время как автоматизация windows-приложений с помощью Selenium не требует таких усилий. Драйвер, который будет открыт по умолчанию с портом 9999, выступает в качестве сервера.

Внутри этот сервер будет взаимодействовать через беспроводной протокол JSON

Оцените статью
Procodings.ru
Добавить комментарий