Что такое Electron-based applications? Как использовать Selenium и Appium для их тестирования?
Electron-based applications — это приложения, которые используют Electron framework, позволяющий создавать кроссплатформенные настольные приложения с помощью веб-технологий (HTML, CSS, JavaScript) и Node.js.
Примеры: VS Code, Slack, Discord, Postman.
1. Концепция Electron-приложений
Архитектура:
Main process — управляет жизненным циклом приложения, создает окна.
Renderer process — каждый window работает как веб-страница (Chromium), рендерит UI.
Особенности:
Использует движок Chromium и Node.js API.
Приложение фактически является «веб-приложением в оболочке» с доступом к системным ресурсам.
2. Тестирование Electron-приложений
a) С помощью Selenium
Selenium может работать с Renderer process, так как это Chromium-браузер.
Как подключиться:
Указать путь к бинарнику Electron и ChromeDriver для Electron.
Использовать
chromedriver
с опцией--app
для запуска Electron-приложения.
Пример (Python):
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
options = Options()
options.binary_location = "/path/to/electron/app"
driver = webdriver.Chrome(options=options)
driver.get("http://localhost") # рендер-процесс доступен через веб
Можно тестировать UI, кнопки, формы, навигацию, события DOM.
b) С помощью Appium
Appium поддерживает desktop-автоматизацию через
Appium Desktop
+WinAppDriver
(Windows) илиMac2Driver
(macOS).Подходы:
Treat Electron as desktop application, использовать нативные элементы окна (кнопки, меню).
Treat Electron как webview, использовать контекст WebDriver для UI-тестов (подобно веб-тестам).
Особенности:
Можно автоматизировать как функциональные тесты, так и end-to-end сценарии.
Для кнопок/меню вне вебview требуется desktop driver (WinAppDriver / Mac2Driver).
3. Итоговые рекомендации
Selenium
UI внутри Renderer process (webview)
Быстро, требует ChromeDriver, ограничен DOM
Appium
UI + desktop элементы
Подходит для E2E тестов, взаимодействие с меню/окнами
Реальная практика: часто комбинируют Selenium для рендер-процесса и Appium для нативного взаимодействия с окнами и меню.
Итог: Electron-приложения — это кроссплатформенные десктоп-приложения на веб-технологиях, их UI можно тестировать через Selenium (рендер-процесс) и Appium (E2E, desktop-элементы), используя драйверы для Chromium и нативные desktop-драйверы.
Last updated
Was this helpful?