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 и он заканчивается тайм-аутами во время запуска, попробуйте следующее:
- Убедитесь, что
nodeCliInspect(FuseV1Options.EnableNodeCliInspectArguments) не установлен вfalse.
Методы
launch
Добавлено в: v1.9Запускает приложение electron, указанное с помощью executablePath.
Использование
await electron.launch();
await electron.launch(options);
Аргументы
optionsObject (необязательно)-
acceptDownloadsboolean (необязательно) Добавлено в: v1.12#Указывает, следует ли автоматически загружать все вложения. По умолчанию
true, при этом все загрузки принимаются. -
argsArray<string> (необязательно)#Дополнительные аргументы, которые передаются приложению при запуске. Обычно здесь передается имя основного скрипта.
-
bypassCSPboolean (необязательно) Добавлено в: v1.12#Переключает обход политики безопасности контента страницы. По умолчанию
false. -
colorSchemenull | "light" | "dark" | "no-preference" (необязательно) Добавлено в: v1.12#Эмулирует медиа-функцию prefers-colors-scheme, поддерживаемые значения:
'light'и'dark'. См. page.emulateMedia() для получения дополнительных сведений. Передачаnullсбрасывает эмуляцию на системные настройки по умолчанию. По умолчанию'light'. -
Текущий рабочий каталог для запуска приложения.
-
envObject<string, string> (необязательно)#Указывает переменные окружения, которые будут видны Electron. По умолчанию
process.env. -
executablePathstring (необязательно)#Запускает указанное приложение Electron. Если не указано, запускается исполняемый файл Electron по умолчанию, установленный в этом пакете, расположенный по адресу
node_modules/.bin/electron. -
extraHTTPHeadersObject<string, string> (необязательно) Добавлено в: v1.12#Объект, содержащий дополнительные HTTP-заголовки, которые будут отправлены с каждым запросом. По умолчанию отсутствуют.
-
httpCredentialsObject (необязательно) Добавлено в: v1.12#-
usernamestring -
passwordstring -
originstring (необязательно)Ограничивает отправку http-учетных данных на конкретный источник (scheme://host:port).
-
send"unauthorized" | "always" (необязательно)Эта опция применяется только к запросам, отправленным из соответствующего APIRequestContext, и не влияет на запросы, отправленные из браузера.
'always'- заголовокAuthorizationс учетными данными базовой аутентификации будет отправлен с каждым API-запросом.'unauthorized- учетные данные отправляются только при получении ответа 401 (Unauthorized) с заголовкомWWW-Authenticate. По умолчанию'unauthorized'.
Учетные данные для HTTP аутентификации. Если источник не указан, имя пользователя и пароль отправляются на любые серверы при несанкционированных ответах.
-
-
ignoreHTTPSErrorsboolean (необязательно) Добавлено в: v1.12#Указывает, следует ли игнорировать ошибки HTTPS при отправке сетевых запросов. По умолчанию
false. -
localestring (необязательно) Добавлено в: v1.12#Укажите локаль пользователя, например
en-GB,de-DEи т.д. Локаль повлияет на значениеnavigator.language, значение заголовка запросаAccept-Language, а также на правила форматирования чисел и дат. По умолчанию используется локаль по умолчанию системы. Узнайте больше о эмуляции в нашем руководстве по эмуляции. -
offlineboolean (необязательно) Добавлено в: v1.12#Указывает, следует ли эмулировать отсутствие сети. По умолчанию
false. Узнайте больше о эмуляции сети. -
recordHarObject (необязательно) Добавлено в: v1.12#-
omitContentboolean (необязательно)Необязательная настройка для управления тем, следует ли исключать содержимое запроса из HAR. По умолчанию
false. Устарело, используйте политикуcontentвместо этого. -
content"omit" | "embed" | "attach" (необязательно)Необязательная настройка для управления управлением содержимым ресурсов. Если указано
omit, содержимое не сохраняется. Если указаноattach, ресурсы сохраняются как отдельные файлы или записи в ZIP-архиве. Если указаноembed, содержимое хранится встроенным в файл HAR в соответствии со спецификацией HAR. По умолчаниюattachдля файлов вывода.zipиembedдля всех других расширений файлов. -
pathstringПуть в файловой системе для записи файла HAR. Если имя файла заканчивается на
.zip, по умолчанию используетсяcontent: 'attach'. -
mode"full" | "minimal" (необязательно)При установке в
minimalзаписывается только информация, необходимая для маршрутизации из HAR. Это исключает размеры, время, страницу, куки, безопасность и другие типы информации HAR, которые не используются при воспроизведении из HAR. По умолчаниюfull. -
urlFilterstring | RegExp (необязательно)Шаблон glob или regex для фильтрации запросов, которые сохраняются в HAR. Когда был предоставлен baseURL через параметры контекста, и переданный URL является путем, он объединяется через конструктор
new URL(). По умолчанию отсутствует.
Включает запись HAR для всех страниц в файл
recordHar.path. Если не указано, HAR не записывается. Убедитесь, что вы дождались browserContext.close() для сохранения HAR. -
-
recordVideoObject (необязательно) Добавлено в: v1.12#-
dirstringПуть к директории для сохранения видео.
-
sizeObject (необязательно)Необязательные размеры записанных видео. Если не указаны, размер будет равен
viewport, уменьшенному для соответствия 800x800. Еслиviewportне настроен явно, размер видео по умолчанию составляет 800x450. Фактическое изображение каждой страницы будет уменьшено, если это необходимо, чтобы соответствовать указанному размеру.
Включает запись видео для всех страниц в директорию
recordVideo.dir. Если не указано, видео не записываются. Убедитесь, что вы дождались browserContext.close() для сохранения видео. -
-
timeoutnumber (необязательно) Добавлено в: v1.15#Максимальное время в миллисекундах для ожидания запуска приложения. По умолчанию
30000(30 секунд). Передайте0, чтобы отключить тайм-аут. -
timezoneIdstring (необязательно) Добавлено в: v1.12#Изменяет часовой пояс контекста. См. ICU's metaZones.txt для списка поддерживаемых идентификаторов часовых поясов. По умолчанию используется часовой пояс системы.
-
tracesDirstring (необязательно) Добавлено в: v1.36#Если указано, трассировки сохраняются в эту директорию.
-
Возвращает