Electron
Playwright имеет экспериментальную поддержку автоматизации Electron. Вы можете получить доступ к пространству имен electron через:
const { _electron } = require('playwright'); Пример скрипта автоматизации Electron:
const { _electron: electron } = require('playwright');
(async () => {
// Launch Electron app.
const electronApp = await electron.launch({ args: ['main.js'] });
// Evaluation expression in the Electron context.
const appPath = await electronApp.evaluate(async ({ app }) => {
// This runs in the main Electron process, parameter here is always
// the result of the require('electron') in the main app script.
return app.getAppPath();
});
console.log(appPath);
// Get the first window that the app opens, wait if necessary.
const window = await electronApp.firstWindow();
// Print the title.
console.log(await window.title());
// Capture a screenshot.
await window.screenshot({ path: 'intro.png' });
// Direct Electron console to Node terminal.
window.on('console', console.log);
// Click button.
await window.click('text=Click me');
// Exit app.
await electronApp.close();
})(); Поддерживаемые версии Electron:
- v12.2.0+
- v13.4.0+
- v14+
Известные проблемы:
Если вы не можете запустить Electron и он завершается тайм-аутами во время запуска, попробуйте следующее:
- Убедитесь, что
nodeCliInspect(FuseV1Options.EnableNodeCliInspectArguments) плагин не установлен в значениеfalse.
Методы
launch
Запускает приложение electron, указанное с помощью executablePath.
Использование
await electron.launch(); await electron.launch(options);
Аргументы
-
optionsОбъект (необязательно)-
acceptDownloadsбулево (необязательно)Автоматически загружать все вложения. По умолчанию
true, где все загрузки принимаются. -
argsМассив<строка> (необязательно)Дополнительные аргументы для передачи при запуске приложения. Обычно здесь указывается имя основного скрипта.
-
bypassCSPбулево (необязательно)Включить обход Content-Security-Policy страницы. По умолчанию
false. -
colorSchemenull | "light" | "dark" | "no-preference" (необязательно)Эмулирует медиа-функцию prefers-colors-scheme, поддерживаемые значения —
'light'и'dark'. Подробнее см. page.emulateMedia(). Передачаnullсбросит эмуляцию на системные значения. По умолчанию'light'. -
cwdстрока (необязательно)Текущая рабочая директория для запуска приложения.
-
envОбъект<строка, строка> (необязательно)Указывает переменные среды, видимые для Electron. По умолчанию
process.env. -
executablePathстрока (необязательно)Запускает заданное приложение Electron. Если не указано, запускается по умолчанию исполняемый файл Electron, установленный в этом пакете, расположенный по адресу
node_modules/.bin/electron. -
extraHTTPHeadersОбъект<строка, строка> (необязательно)Объект, содержащий дополнительные HTTP-заголовки, которые будут отправляться с каждым запросом. По умолчанию — нет.
-
geolocationОбъект (необязательно) -
httpCredentialsОбъект (необязательно)-
usernameстрока -
passwordстрока -
originстрока (необязательно)Ограничение отправки http-креденциалов на определённый источник (схема://хост:порт).
-
send"unauthorized" | "always" (необязательно)Этот параметр применяется только к запросам, отправленным из соответствующего APIRequestContext, и не влияет на запросы, отправленные из браузера.
'always'- заголовокAuthorizationс базовыми аутентификационными данными будет отправляться с каждым API-запросом.'unauthorized- данные аутентификации отправляются только при получении ответа 401 (Unauthorized) с заголовкомWWW-Authenticate. По умолчанию'unauthorized'.
Данные аутентификации для HTTP-аутентификации. Если источник не указан, имя пользователя и пароль отправляются на любые серверы при ответах с ошибкой доступа.
-
-
ignoreHTTPSErrorsбулево (необязательно)Игнорировать ошибки HTTPS при отправке сетевых запросов. По умолчанию
false. -
localeстрока (необязательно)Укажите локаль пользователя, например
en-GB,de-DE, и т. д. Локаль повлияет на значениеnavigator.languageзаголовок запросаAccept-Language, а также правила форматирования чисел и дат. По умолчанию — системная локаль. Узнайте больше об эмуляции в нашем руководстве по эмуляции. -
offlineбулево (необязательно)Эмулировать отсутствие сети. По умолчанию
false. Узнайте больше о эмуляции сети. -
recordHarОбъект (необязательно)-
omitContentбулево (необязательно)Необязательная настройка для управления тем, нужно ли пропускать содержимое запроса из HAR. По умолчанию
false. Устарело, используйте политикуcontentвместо этого. -
content"omit" | "embed" | "attach" (необязательно)Необязательная настройка для управления управлением содержимым ресурсов. Если указано
omit, содержимое не сохраняется. Если указаноattach, ресурсы сохраняются как отдельные файлы или записи в архиве ZIP. Если указаноembed, содержимое хранится внутри файла HAR в соответствии со спецификацией HAR. По умолчаниюattachдля файлов с расширением.zipиembedдля всех других расширений файлов. -
pathстрокаПуть в файловой системе для записи файла HAR. Если имя файла заканчивается на
.zip, по умолчанию используетсяcontent: 'attach'. -
mode"full" | "minimal" (необязательно)При установке значения
minimal, записывается только информация, необходимая для маршрутизации из HAR. Это пропускает размеры, тайминги, страницы, куки, безопасность и другие типы информации HAR, которые не используются при воспроизведении из HAR. По умолчаниюfull. -
urlFilterстрока | RegExp (необязательно)Шаблон glob или regex для фильтрации запросов, которые хранятся в HAR. Когда через параметры контекста был предоставлен baseURL и переданный URL — путь, он объединяется с помощью конструктора
new URL(). По умолчанию — нет.
Включает запись HAR для всех страниц в файл
recordHar.path. Если не указано, HAR не записывается. Убедитесь, что вы ожидаете browserContext.close() для сохранения HAR. -
-
-
recordVideoОбъект (необязательно)-
dirстрокаПуть к каталогу для сохранения видео.
-
sizeОбъект (необязательно)Необязательные размеры записываемых видео. Если не указаны, размеры будут равны
viewport, уменьшенным для вписывания в 800x800. Еслиviewportне задан явно, размер видео по умолчанию 800x450. Фактическое изображение каждой страницы будет уменьшено при необходимости, чтобы поместиться в указанные размеры.
Включает запись видео для всех страниц в каталог
recordVideo.dir. Если не указан, видео не записываются. Убедитесь, что вы ожидаете browserContext.close(), чтобы видео были сохранены. -
-
timeoutчисло (необязательно)Максимальное время в миллисекундах ожидания запуска приложения. По умолчанию
30000(30 секунд). Передайте0для отключения таймаута. -
timezoneIdстрока (необязательно)Изменяет часовой пояс контекста. Смотрите ICU's metaZones.txt для списка поддерживаемых идентификаторов часовых поясов. По умолчанию используется часовой пояс системы.
-
tracesDirстрока (необязательно)Если указано, трассировки сохраняются в этом каталоге.
-
Возвращает
© 2024 Microsoft
Licensed under the Apache License, Version 2.0.
https://playwright.dev/docs/api/class-electron