Electron
Playwright 对 Electron 自动化提供实验性支持。您可以通过以下方式访问 electron 命名空间:
const { _electron } = require('playwright');
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();
})();
支持的 Electron 版本有:
- v12.2.0+
- v13.4.0+
- v14+
已知问题
如果您无法启动 Electron 并且在启动期间出现超时,请尝试以下操作:
- 确保
nodeCliInspect(FuseV1Options.EnableNodeCliInspectArguments) fuse 未设置为false。
方法
启动
添加于:v1.9启动由 executablePath 指定的 Electron 应用程序。
用法
await electron.launch();
await electron.launch(options);
参数
optionsObject (可选)-
acceptDownloads布尔值 (可选)添加于:v1.12#是否自动下载所有附件。默认为
true,即接受所有下载。 -
启动应用程序时要传递的额外参数。您通常在此处传递主脚本名称。
-
切换是否绕过页面的 Content-Security-Policy。默认为
false。 -
colorSchemenull | "light" | "dark" | "no-preference" (可选)添加于:v1.12#模拟 prefers-colors-scheme 媒体特性,支持的值为
'light'和'dark'。有关更多详细信息,请参阅 page.emulateMedia()。传递null将模拟重置为系统默认值。默认为'light'。 -
启动应用程序的当前工作目录。
-
指定 Electron 可见的环境变量。默认为
process.env。 -
启动给定的 Electron 应用程序。如果未指定,则启动此包中安装的默认 Electron 可执行文件,位于
node_modules/.bin/electron。 -
extraHTTPHeaders对象<字符串, 字符串> (可选)添加于:v1.12#一个对象,包含要随每个请求发送的附加 HTTP 头。默认为无。
-
httpCredentials对象 (可选)添加于:v1.12#-
usernamestring -
passwordstring -
originstring (可选)限制在特定源(scheme://host:port)上发送 http 凭据).
-
send"unauthorized" | "always" (可选)此选项仅适用于从相应的 APIRequestContext 发送的请求,不影响从浏览器发送的请求。
'always'-Authorization标头和基本身份验证凭据将随每个 API 请求发送。'unauthorized- 凭据仅在收到带有WWW-Authenticate标头的 401 (Unauthorized) 响应时发送。默认为'unauthorized'。
HTTP 身份验证的凭据。如果未指定源,则用户名和密码将在未经授权的响应时发送给任何服务器。
-
-
ignoreHTTPSErrors布尔值 (可选)添加于:v1.12#发送网络请求时是否忽略 HTTPS 错误。默认为
false。 -
指定用户区域设置,例如
en-GB、de-DE等。区域设置将影响navigator.language值、Accept-Language请求头值以及数字和日期格式规则。默认为系统默认区域设置。在我们的模拟指南中了解更多关于模拟的信息。 -
是否模拟网络离线。默认为
false。了解更多关于 网络模拟。 -
-
omitContentboolean (可选)控制是否从 HAR 中省略请求内容的设置。默认为
false。已弃用,请改用content策略。 -
content"omit" | "embed" | "attach" (可选)用于控制资源内容管理的的可选设置。如果指定
omit,则内容不持久化。如果指定attach,则资源作为单独的文件或 ZIP 存档中的条目持久化。如果指定embed,则内容按照 HAR 规范嵌入到 HAR 文件中。对于.zip输出文件,默认为attach,对于所有其他文件扩展名,默认为embed。 -
pathstring将 HAR 文件写入的文件系统路径。如果文件名以
.zip结尾,则默认使用content: 'attach'。 -
mode"full" | "minimal" (可选)设置为
minimal时,仅记录从 HAR 路由所需的信息。这会省略 HAR 的大小、时间、页面、Cookie、安全性和其他类型的 HAR 信息,这些信息在从 HAR 重放时不使用。默认为full。 -
一个 glob 或正则表达式模式,用于过滤存储在 HAR 中的请求。如果通过上下文选项提供了 baseURL 且传入的 URL 是一个路径,则它通过
new URL()构造函数进行合并。默认为无。
为所有页面启用 HAR 录制到
recordHar.path文件。如果未指定,则不录制 HAR。请务必等待 browserContext.close() 以保存 HAR。 -
-
-
dirstring用于存放视频的目录路径。
-
sizeObject (可选)录制视频的可选尺寸。如果未指定,尺寸将等于
viewport缩小到适合 800x800。如果未明确配置viewport,则视频尺寸默认为 800x450。每页的实际图像将根据需要缩小以适应指定的尺寸。
为所有页面启用视频录制到
recordVideo.dir目录。如果未指定,则不录制视频。请务必等待 browserContext.close() 以保存视频。 -
-
等待应用程序启动的最大时间(以毫秒为单位)。默认为
30000(30 秒)。传递0以禁用超时。 -
更改上下文的时区。有关支持的时区 ID 列表,请参见 ICU 的 metaZones.txt。默认为系统时区。
-
如果指定,追踪将保存到此目录。
-
返回