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);
Аргументы
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'
. -
Текущий рабочий каталог для запуска приложения.
-
env
Object<string, string> (необязательно)#Указывает переменные окружения, которые будут видны Electron. По умолчанию
process.env
. -
executablePath
string (необязательно)#Запускает указанное приложение Electron. Если не указано, запускается исполняемый файл Electron по умолчанию, установленный в этом пакете, расположенный по адресу
node_modules/.bin/electron
. -
extraHTTPHeaders
Object<string, string> (необязательно) Добавлено в: v1.12#Объект, содержащий дополнительные HTTP-заголовки, которые будут отправлены с каждым запросом. По умолчанию отсутствуют.
-
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 (необязательно)Необязательные размеры записанных видео. Если не указаны, размер будет равен
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#Если указано, трассировки сохраняются в эту директорию.
-
Возвращает