ElectronApplication
Представление приложения Electron. Вы можете использовать electron.launch(), чтобы получить экземпляр приложения. С этим экземпляром вы можете управлять основным процессом Electron и работать с окнами 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();
})(); Методы
browserWindow
Возвращает объект BrowserWindow, соответствующий заданной странице Playwright.
Использование
await electronApplication.browserWindow(page);
Аргументы
-
pageСтраницаСтраница, для которой нужно получить окно.
Возвращаемое значение
close
Закрывает приложение Electron.
Использование
await electronApplication.close();
Возвращаемое значение
context
Этот метод возвращает контекст браузера, который можно использовать для настройки маршрутизации по всему контексту и т. п.
Использование
electronApplication.context();
Возвращаемое значение
evaluate
Возвращает возвращаемое значение pageFunction.
Если функция, переданная в electronApplication.evaluate(), возвращает Promise, то electronApplication.evaluate() ожидает разрешения промиса и возвращает его значение.
Если функция, переданная в electronApplication.evaluate(), возвращает не-сеrializable значение, то electronApplication.evaluate() возвращает undefined. Playwright также поддерживает передачу некоторых дополнительных значений, которые не являются сериализуемыми JSON: -0, NaN, Infinity, -Infinity.
Использование
await electronApplication.evaluate(pageFunction); await electronApplication.evaluate(pageFunction, arg);
Аргументы
-
pageFunctionфункция | ElectronФункция, которая должна быть вычислена в основном процессе Electron.
-
argEvaluationArgument (необязательно)Необязательный аргумент, который нужно передать pageFunction.
Возвращаемое значение
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функция | ElectronФункция, которая должна быть вычислена в основном процессе Electron.
-
argEvaluationArgument (необязательно)Необязательный аргумент, который нужно передать pageFunction.
Возвращаемое значение
firstWindow
Удобный метод, который ожидает открытия первого окна приложения.
Использование
const electronApp = await electron.launch({
args: ['main.js']
});
const window = await electronApp.firstWindow();
// ... Аргументы
-
optionsОбъект (необязательно)-
timeoutчисло (необязательно)Максимальное время ожидания в миллисекундах. По умолчанию
30000(30 секунд). Передайте0для отключения таймаута. Значение по умолчанию можно изменить, используя browserContext.setDefaultTimeout().
-
Возвращаемое значение
process
Возвращает основной процесс для этого приложения Electron.
Использование
electronApplication.process();
Возвращаемое значение
waitForEvent
Ожидает срабатывания события и передает его значение в функцию-предикат. Возвращает значение, когда предикат возвращает истинное значение. Вызовет ошибку, если приложение будет закрыто до срабатывания события. Возвращает значение данных события.
Использование
const windowPromise = electronApp.waitForEvent('window');
await mainWindow.click('button');
const window = await windowPromise; Аргументы
-
eventстрокаИмя события, такое же, как обычно передается в
*.on(event). -
optionsOrPredicateфункция | объект (необязательно)-
predicateфункцияполучает данные события и разрешает ожидание, когда значение должно разрешиться.
-
timeoutчисло (необязательно)максимальное время ожидания в миллисекундах. По умолчанию
30000(30 секунд). Передайте0для отключения таймаута. Значение по умолчанию можно изменить, используя browserContext.setDefaultTimeout().
Либо предикат, получающий событие, либо объект параметров. Необязательно.
-
Возвращаемое значение
windows
Удобный метод, который возвращает все открытые окна.
Использование
electronApplication.windows();
Возвращаемое значение
События
on('close')
Это событие генерируется, когда процесс приложения завершен.
Использование
electronApplication.on('close', data => {}); 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')
Это событие генерируется для каждого окна, которое создано и загружено в Electron. Оно содержит Страницу, которую можно использовать для автоматизации Playwright.
Использование
electronApplication.on('window', data => {}); Данные события
© 2024 Microsoft
Licensed under the Apache License, Version 2.0.
https://playwright.dev/docs/api/class-electronapplication