ElectronApplication
Electron 应用程序表示。你可以使用 electron.launch([options]) 获取应用程序实例。使用此实例,你可以控制主 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();
})();
- electronApplication.on('close')
- electronApplication.on('window')
- electronApplication.browserWindow(page)
- electronApplication.close()
- electronApplication.context()
- electronApplication.evaluate(pageFunction[, arg])
- electronApplication.evaluateHandle(pageFunction[, arg])
- electronApplication.firstWindow()
- electronApplication.process()
- electronApplication.waitForEvent(event[, optionsOrPredicate])
- electronApplication.windows()
electronApplication.on('close')
Added in: v1.9当应用程序关闭时发出此事件。
electronApplication.on('window')
Added in: v1.9- type: <Page>
为 Electron 中创建并加载的每个窗口发出此事件。它包含一个可用于 Playwright 自动化的 Page。
electronApplication.browserWindow(page)
Added in: v1.11返回对应于给定 Playwright页面的 BrowserWindow 对象。
electronApplication.close()
Added in: v1.9关闭 Electron 应用程序。
electronApplication.context()
Added in: v1.9- returns: <BrowserContext>#
此方法返回可用于设置上下文范围路由等的浏览器上下文。
electronApplication.evaluate(pageFunction[, arg])
Added in: v1.9pageFunction<function|Electron> 要在 worker 上下文中评估的函数。#arg?<EvaluationArgument> 传递给pageFunction的可选参数。#- returns: <Promise<Serializable>>#
返回 pageFunction 的返回值。
如果传递给 electronApplication.evaluate(pageFunction[, arg]) 的函数返回 Promise,则 electronApplication.evaluate(pageFunction[, arg]) 将等待 promise 解析并返回其值。
如果传递给 electronApplication.evaluate(pageFunction[, arg]) 的函数返回非 Serializable 值,则 electronApplication.evaluate(pageFunction[, arg]) 返回 undefined。Playwright 还支持传输一些无法通过 JSON 序列化的附加值:-0、NaN、Infinity、-Infinity。
electronApplication.evaluateHandle(pageFunction[, arg])
Added in: v1.9pageFunction<function|Electron> 要在 worker 上下文中评估的函数。#arg?<EvaluationArgument> 传递给pageFunction的可选参数。#- returns: <Promise<JSHandle>>#
以 JSHandle 形式返回 pageFunction 的返回值。
electronApplication.evaluate(pageFunction[, arg]) 和 electronApplication.evaluateHandle(pageFunction[, arg]) 之间的唯一区别是 electronApplication.evaluateHandle(pageFunction[, arg]) 返回 JSHandle。
如果传递给 electronApplication.evaluateHandle(pageFunction[, arg]) 的函数返回 Promise,则 electronApplication.evaluateHandle(pageFunction[, arg]) 将等待 promise 解析并返回其值。
electronApplication.firstWindow()
Added in: v1.9等待打开第一个应用程序窗口的便捷方法。通常你的脚本将以以下内容开头:
const electronApp = await electron.launch({
args: ['main.js']
});
const window = await electronApp.firstWindow();
// ...
electronApplication.process()
Added in: v1.21- returns: <ChildProcess>#
返回此 Electron 应用程序的主进程。
electronApplication.waitForEvent(event[, optionsOrPredicate])
Added in: v1.9event<string> 事件名称,通常传递给*.on(event)的名称。#optionsOrPredicate?<function|Object> 接收事件的谓词或选项对象。可选。#predicate<function> 接收事件数据并在等待应解析时解析为真值。timeout?<number> 等待的最大时间(以毫秒为单位)。默认为30000(30 秒)。传递0以禁用超时。可以使用 browserContext.setDefaultTimeout(timeout) 更改默认值。
- returns: <Promise<Object>>#
等待事件触发并将其值传递给谓词函数。当谓词返回真值时返回。如果在事件触发之前应用程序关闭,则会抛出错误。返回事件数据值。
const [window] = await Promise.all([
electronApp.waitForEvent('window'),
mainWindow.click('button')
]);
electronApplication.windows()
Added in: v1.9返回所有打开的窗口的便捷方法。