Что такое 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-браузер.

  • Как подключиться:

    1. Указать путь к бинарнику Electron и ChromeDriver для Electron.

    2. Использовать 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).

  • Подходы:

    1. Treat Electron as desktop application, использовать нативные элементы окна (кнопки, меню).

    2. 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?