跳至主要内容

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,并且它在启动过程中会超时,请尝试以下操作


方法

launch

添加于:v1.9 electron.launch

启动使用 executablePath 指定的 Electron 应用程序。

用法

await electron.launch();
await electron.launch(options);

参数

  • options 对象 (可选)
    • acceptDownloads 布尔值 (可选)添加于:v1.12#

      是否自动下载所有附件。默认为 true,所有下载都将被接受。

    • args 数组<字符串> (可选)#

      启动时传递给应用程序的额外参数。您通常在此处传递主脚本名称。

    • bypassCSP 布尔值 (可选)添加于:v1.12#

      切换是否绕过页面的内容安全策略。默认为 false

    • colorScheme null | "light" | "dark" | "no-preference" (可选)添加于:v1.12#

      模拟 'prefers-colors-scheme' 媒体特性,支持的值为 'light''dark''no-preference'。有关更多详细信息,请参阅 page.emulateMedia()。传递 null 将模拟重置为系统默认值。默认为 'light'

    • cwd 字符串 (可选)#

      从启动应用程序的当前工作目录。

    • env 对象<字符串, 字符串> (可选)#

      指定 Electron 可见的環境變數。默认为 process.env

    • executablePath 字符串 (可选)#

      启动给定的 Electron 应用程序。如果未指定,则启动此软件包中安装的默认 Electron 可执行文件,位于 node_modules/.bin/electron

    • extraHTTPHeaders 对象<字符串, 字符串> (可选)添加于:v1.12#

      一个对象,包含要与每个请求一起发送的额外 HTTP 标头。默认为无。

    • geolocation 对象 (可选)添加于:v1.12#

      • latitude 数字

        纬度介于 -90 到 90 之间。

      • longitude 数字

        经度介于 -180 到 180 之间。

      • accuracy 数字 (可选)

        非负精度值。默认为 0

    • httpCredentials 对象 (可选)添加于:v1.12#

      • username 字符串

      • password 字符串

      • origin 字符串 (可选)

        限制在特定来源(方案://主机:端口)上发送 HTTP 凭据).

      • send "unauthorized" | "always" (可选)

        此选项仅适用于从相应的 APIRequestContext 发送的请求,不影响从浏览器发送的请求。'always' - 每个 API 请求都将发送带有基本身份验证凭据的 Authorization 标头。'unauthorized - 仅在收到带有 WWW-Authenticate 标头的 401(未授权)响应时才会发送凭据。默认为 'unauthorized'

      用于 HTTP 身份验证 的凭据。如果没有指定来源,则用户名和密码将在未经授权的响应时发送到任何服务器。

    • ignoreHTTPSErrors 布尔值 (可选)添加于:v1.12#

      是否忽略发送网络请求时的 HTTPS 错误。默认为 false

    • locale 字符串 (可选)添加于:v1.12#

      指定用户区域设置,例如 en-GBde-DE 等。区域设置将影响 navigator.language 值、Accept-Language 请求标头值以及数字和日期格式化规则。默认为系统默认区域设置。在我们的 模拟指南 中了解有关模拟的更多信息。

    • offline 布尔值 (可选)添加于:v1.12#

      是否模拟网络脱机。默认为 false。了解有关 网络模拟 的更多信息。

    • recordHar 对象 (可选)添加于:v1.12#

      • omitContent 布尔值 (可选)

        可选设置,用于控制是否从 HAR 中省略请求内容。默认为 false。已弃用,请使用 content 策略代替。

      • content "omit" | "embed" | "attach" (可选)

        可选设置,用于控制资源内容管理。如果指定 omit,则不会持久保存内容。如果指定 attach,则资源将作为单独的文件或 ZIP 存档中的条目持久保存。如果指定 embed,则内容将根据 HAR 规范内联存储在 HAR 文件中。对于 .zip 输出文件,默认为 attach,对于所有其他文件扩展名,默认为 embed

      • path 字符串

        将 HAR 文件写入文件系统的路径。如果文件名以 .zip 结尾,则默认使用 content: 'attach'

      • mode "full" | "minimal" (可选)

        当设置为 minimal 时,仅记录从 HAR 路由所需的信息。这会省略大小、计时、页面、cookie、安全性和其他类型未在从 HAR 播放时使用的 HAR 信息。默认为 full

      • urlFilter 字符串 | 正则表达式 (可选)

        一个 glob 或正则表达式模式,用于过滤存储在 HAR 中的请求。当通过上下文选项提供 baseURL 并且传递的 URL 是一个路径时,它会通过 new URL() 构造函数进行合并。默认为无。

      为所有页面启用 HAR 记录到 recordHar.path 文件中。如果未指定,则不会记录 HAR。确保等待 browserContext.close() 以便保存 HAR。

    • recordVideo 对象 (可选)添加于:v1.12#

      • dir 字符串

        放置视频的目录路径。

      • size 对象 (可选)

        • width 数字

          视频帧宽度。

        • height 数字

          视频帧高度。

        录制视频的可选尺寸。如果未指定,则尺寸将等于缩放到适合 800x800 的viewport。如果viewport未显式配置,则视频尺寸默认为 800x450。如果需要,每个页面的实际图片将缩放到适合指定尺寸。

      为所有页面启用视频录制到recordVideo.dir目录中。如果未指定,则不会录制视频。确保等待browserContext.close()才能保存视频。

    • timeout 数字 (可选)添加于:v1.15#

      等待应用程序启动的最大时间(以毫秒为单位)。默认为30000(30 秒)。传递0以禁用超时。

    • timezoneId 字符串 (可选)添加于:v1.12#

      更改上下文的时区。有关支持的时区 ID 列表,请参见ICU's metaZones.txt。默认为系统时区。

    • tracesDir 字符串 (可选)添加于:v1.36#

      如果指定,则跟踪将保存到此目录中。

返回值