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

ElectronApplication

Представление приложения Electron. Вы можете использовать electron.launch() для получения экземпляра приложения. Этот экземпляр позволяет управлять основным процессом Electron, а также работать с окнами 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();
})();

Методы

browserWindow

Добавлено в: v1.11 electronApplication.browserWindow

Возвращает объект BrowserWindow, который соответствует данной странице Playwright.

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

await electronApplication.browserWindow(page);

Аргументы

  • page Page#

    Страница, для которой нужно получить окно.

Возвращает


close

Добавлено в: v1.9 electronApplication.close

Закрывает приложение Electron.

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

await electronApplication.close();

Возвращает


context

Добавлено в: v1.9 electronApplication.context

Этот метод возвращает контекст браузера, который можно использовать для настройки маршрутизации на уровне контекста и т.д.

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

electronApplication.context();

Возвращает


evaluate

Добавлено в: v1.9 electronApplication.evaluate

Возвращает значение, возвращаемое pageFunction.

Если функция, переданная в electronApplication.evaluate(), возвращает Promise, то electronApplication.evaluate() будет ждать разрешения промиса и вернет его значение.

Если функция, переданная в electronApplication.evaluate(), возвращает не-Serializable значение, то electronApplication.evaluate() вернет undefined. Playwright также поддерживает передачу некоторых дополнительных значений, которые не сериализуемы с помощью JSON: -0, NaN, Infinity, -Infinity.

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

await electronApplication.evaluate(pageFunction);
await electronApplication.evaluate(pageFunction, arg);

Аргументы

  • pageFunction function | Electron#

    Функция, которая будет оцениваться в основном процессе Electron.

  • arg EvaluationArgument (опционально)#

    Опциональный аргумент, который передается в pageFunction.

Возвращает


evaluateHandle

Добавлено в: v1.9 electronApplication.evaluateHandle

Возвращает значение, возвращаемое pageFunction в виде JSHandle.

Единственное отличие между electronApplication.evaluate() и electronApplication.evaluateHandle() заключается в том, что electronApplication.evaluateHandle() возвращает JSHandle.

Если функция, переданная в electronApplication.evaluateHandle(), возвращает Promise, то electronApplication.evaluateHandle() будет ждать разрешения промиса и вернет его значение.

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

await electronApplication.evaluateHandle(pageFunction);
await electronApplication.evaluateHandle(pageFunction, arg);

Аргументы

  • pageFunction function | Electron#

    Функция, которая будет оцениваться в основном процессе Electron.

  • arg EvaluationArgument (опционально)#

    Опциональный аргумент, который передается в pageFunction.

Возвращает


firstWindow

Добавлено в: v1.9 electronApplication.firstWindow

Удобный метод, который ждет открытия первого окна приложения.

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

const electronApp = await electron.launch({
args: ['main.js']
});
const window = await electronApp.firstWindow();
// ...

Аргументы

  • options Object (опционально)
    • timeout number (опционально) Добавлено в: v1.33#

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

Возвращает


process

Добавлено в: v1.21 electronApplication.process

Возвращает основной процесс для этого приложения Electron.

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

electronApplication.process();

Возвращает


waitForEvent

Добавлено в: v1.9 electronApplication.waitForEvent

Ожидает срабатывания события и передает его значение в предикатную функцию. Возвращает результат, когда предикат возвращает истинное значение. Выдаст ошибку, если приложение будет закрыто до срабатывания события. Возвращает значение данных события.

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

const windowPromise = electronApp.waitForEvent('window');
await mainWindow.click('button');
const window = await windowPromise;

Аргументы

  • event string#

    Имя события, то же самое, что обычно передается в *.on(event).

  • optionsOrPredicate function | Object (опционально)#

    • predicate function

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

    • timeout number (опционально)

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

    Либо предикат, который получает событие, либо объект параметров. Опционально.

Возвращает


windows

Добавлено в: v1.9 electronApplication.windows

Удобный метод, который возвращает все открытые окна.

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

electronApplication.windows();

Возвращает


События

on('close')

Добавлено в: v1.9 electronApplication.on('close')

Это событие возникает, когда процесс приложения был завершен.

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

electronApplication.on('close', data => {});

on('console')

Добавлено в: v1.42 electronApplication.on('console')

Срабатывает, когда JavaScript в основном процессе Electron вызывает один из методов API консоли, например console.log или console.dir.

Аргументы, переданные в console.log, доступны в аргументе обработчика события ConsoleMessage.

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

electronApp.on('console', async msg => {
const values = [];
for (const arg of msg.args())
values.push(await arg.jsonValue());
console.log(...values);
});
await electronApp.evaluate(() => console.log('hello', 5, { foo: 'bar' }));

Данные события


on('window')

Добавлено в: v1.9 electronApplication.on('window')

Это событие возникает для каждого окна, которое создается и загружается в Electron. Оно содержит Page, который можно использовать для автоматизации с помощью Playwright.

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

electronApplication.on('window', data => {});

Данные события