Перейти к основному содержимому

Electron

Playwright имеет экспериментальную поддержку автоматизации Electron. Вы можете получить доступ к пространству имен electron через:

const { _electron } = require('playwright');

Пример скрипта автоматизации Electron может выглядеть следующим образом:

const { _electron: electron } = require('playwright');

(async () => {
// Запуск приложения Electron.
const electronApp = await electron.launch({ args: ['main.js'] });

// Оценка выражения в контексте Electron.
const appPath = await electronApp.evaluate(async ({ app }) => {
// Это выполняется в основном процессе Electron, параметр здесь всегда
// является результатом require('electron') в основном скрипте приложения.
return app.getAppPath();
});
console.log(appPath);

// Получите первое окно, которое открывает приложение, подождите, если необходимо.
const window = await electronApp.firstWindow();
// Выведите заголовок.
console.log(await window.title());
// Сделайте скриншот.
await window.screenshot({ path: 'intro.png' });
// Направьте консоль Electron в терминал Node.
window.on('console', console.log);
// Нажмите кнопку.
await window.click('text=Click me');
// Закройте приложение.
await electronApp.close();
})();

Поддерживаемые версии Electron:

  • v12.2.0+
  • v13.4.0+
  • v14+

Известные проблемы:

Если вы не можете запустить Electron и он заканчивается тайм-аутами во время запуска, попробуйте следующее:


Методы

launch

Добавлено в: v1.9 electron.launch

Запускает приложение electron, указанное с помощью executablePath.

Использование

await electron.launch();
await electron.launch(options);

Аргументы

  • options Object (необязательно)
    • acceptDownloads boolean (необязательно) Добавлено в: v1.12#

      Указывает, следует ли автоматически загружать все вложения. По умолчанию true, при этом все загрузки принимаются.

    • args Array<string> (необязательно)#

      Дополнительные аргументы, которые передаются приложению при запуске. Обычно здесь передается имя основного скрипта.

    • bypassCSP boolean (необязательно) Добавлено в: v1.12#

      Переключает обход политики безопасности контента страницы. По умолчанию false.

    • colorScheme null | "light" | "dark" | "no-preference" (необязательно) Добавлено в: v1.12#

      Эмулирует медиа-функцию prefers-colors-scheme, поддерживаемые значения: 'light' и 'dark'. См. page.emulateMedia() для получения дополнительных сведений. Передача null сбрасывает эмуляцию на системные настройки по умолчанию. По умолчанию 'light'.

    • cwd string (необязательно)#

      Текущий рабочий каталог для запуска приложения.

    • env Object<string, string> (необязательно)#

      Указывает переменные окружения, которые будут видны Electron. По умолчанию process.env.

    • executablePath string (необязательно)#

      Запускает указанное приложение Electron. Если не указано, запускается исполняемый файл Electron по умолчанию, установленный в этом пакете, расположенный по адресу node_modules/.bin/electron.

    • extraHTTPHeaders Object<string, string> (необязательно) Добавлено в: v1.12#

      Объект, содержащий дополнительные HTTP-заголовки, которые будут отправлены с каждым запросом. По умолчанию отсутствуют.

    • geolocation Object (необязательно) Добавлено в: v1.12#

      • latitude number

        Широта от -90 до 90.

      • longitude number

        Долгота от -180 до 180.

      • accuracy number (необязательно)

        Ненегативное значение точности. По умолчанию 0.

    • httpCredentials Object (необязательно) Добавлено в: v1.12#

      • username string

      • password string

      • origin string (необязательно)

        Ограничивает отправку http-учетных данных на конкретный источник (scheme://host:port).

      • send "unauthorized" | "always" (необязательно)

        Эта опция применяется только к запросам, отправленным из соответствующего APIRequestContext, и не влияет на запросы, отправленные из браузера. 'always' - заголовок Authorization с учетными данными базовой аутентификации будет отправлен с каждым API-запросом. 'unauthorized - учетные данные отправляются только при получении ответа 401 (Unauthorized) с заголовком WWW-Authenticate. По умолчанию 'unauthorized'.

      Учетные данные для HTTP аутентификации. Если источник не указан, имя пользователя и пароль отправляются на любые серверы при несанкционированных ответах.

    • ignoreHTTPSErrors boolean (необязательно) Добавлено в: v1.12#

      Указывает, следует ли игнорировать ошибки HTTPS при отправке сетевых запросов. По умолчанию false.

    • locale string (необязательно) Добавлено в: v1.12#

      Укажите локаль пользователя, например en-GB, de-DE и т.д. Локаль повлияет на значение navigator.language, значение заголовка запроса Accept-Language, а также на правила форматирования чисел и дат. По умолчанию используется локаль по умолчанию системы. Узнайте больше о эмуляции в нашем руководстве по эмуляции.

    • offline boolean (необязательно) Добавлено в: v1.12#

      Указывает, следует ли эмулировать отсутствие сети. По умолчанию false. Узнайте больше о эмуляции сети.

    • recordHar Object (необязательно) Добавлено в: v1.12#

      • omitContent boolean (необязательно)

        Необязательная настройка для управления тем, следует ли исключать содержимое запроса из HAR. По умолчанию false. Устарело, используйте политику content вместо этого.

      • content "omit" | "embed" | "attach" (необязательно)

        Необязательная настройка для управления управлением содержимым ресурсов. Если указано omit, содержимое не сохраняется. Если указано attach, ресурсы сохраняются как отдельные файлы или записи в ZIP-архиве. Если указано embed, содержимое хранится встроенным в файл HAR в соответствии со спецификацией HAR. По умолчанию attach для файлов вывода .zip и embed для всех других расширений файлов.

      • path string

        Путь в файловой системе для записи файла HAR. Если имя файла заканчивается на .zip, по умолчанию используется content: 'attach'.

      • mode "full" | "minimal" (необязательно)

        При установке в minimal записывается только информация, необходимая для маршрутизации из HAR. Это исключает размеры, время, страницу, куки, безопасность и другие типы информации HAR, которые не используются при воспроизведении из HAR. По умолчанию full.

      • urlFilter string | RegExp (необязательно)

        Шаблон glob или regex для фильтрации запросов, которые сохраняются в HAR. Когда был предоставлен baseURL через параметры контекста, и переданный URL является путем, он объединяется через конструктор new URL(). По умолчанию отсутствует.

      Включает запись HAR для всех страниц в файл recordHar.path. Если не указано, HAR не записывается. Убедитесь, что вы дождались browserContext.close() для сохранения HAR.

    • recordVideo Object (необязательно) Добавлено в: v1.12#

      • dir string

        Путь к директории для сохранения видео.

      • size Object (необязательно)

        • width number

          Ширина видеофрейма.

        • height number

          Высота видеофрейма.

        Необязательные размеры записанных видео. Если не указаны, размер будет равен viewport, уменьшенному для соответствия 800x800. Если viewport не настроен явно, размер видео по умолчанию составляет 800x450. Фактическое изображение каждой страницы будет уменьшено, если это необходимо, чтобы соответствовать указанному размеру.

      Включает запись видео для всех страниц в директорию recordVideo.dir. Если не указано, видео не записываются. Убедитесь, что вы дождались browserContext.close() для сохранения видео.

    • timeout number (необязательно) Добавлено в: v1.15#

      Максимальное время в миллисекундах для ожидания запуска приложения. По умолчанию 30000 (30 секунд). Передайте 0, чтобы отключить тайм-аут.

    • timezoneId string (необязательно) Добавлено в: v1.12#

      Изменяет часовой пояс контекста. См. ICU's metaZones.txt для списка поддерживаемых идентификаторов часовых поясов. По умолчанию используется часовой пояс системы.

    • tracesDir string (необязательно) Добавлено в: v1.36#

      Если указано, трассировки сохраняются в эту директорию.

Возвращает