跳至主要内容

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并且启动过程中出现超时,请尝试以下方法:


方法

启动

Added in: v1.9 electron.launch

启动由executablePath指定的electron应用程序。

用法

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

参数

  • options Object (optional)
    • acceptDownloads boolean (可选) 添加于: v1.12#

      是否自动下载所有附件。默认为true,表示接受所有下载。

    • args Array<string> (可选)#

      启动应用程序时要传递的额外参数。通常在这里传递主脚本名称。

    • bypassCSP boolean (可选) 添加于: v1.12#

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

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

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

    • cwd string (可选)#

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

    • env Object<string, string> (可选)#

      指定对Electron可见的环境变量。默认为process.env

    • executablePath string (可选)#

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

    • extraHTTPHeaders Object<string, string> (可选) 添加于: v1.12#

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

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

      • latitude number

        纬度值,范围在-90到90之间。

      • longitude number

        经度值,范围在-180到180之间。

      • accuracy number (可选)

        非负精度值。默认为 0

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

      • username string

      • password string

      • origin string (可选)

        限制在特定来源(scheme://host:port)上发送HTTP凭据。

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

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

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

    • ignoreHTTPSErrors boolean (可选) 添加于: v1.12#

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

    • locale string (可选) 添加于: v1.12#

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

    • offline boolean (可选) 添加于: v1.12#

      是否模拟网络离线状态。默认为 false。了解更多关于网络模拟的信息。

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

      • omitContent boolean (可选)

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

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

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

      • path string

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

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

        当设置为minimal时,仅记录HAR路由所必需的信息。这会省略大小、时间、页面、cookies、安全和其他类型的HAR信息,这些信息在从HAR回放时不会被使用。默认为full

      • urlFilter string | RegExp (可选)

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

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

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

      • dir string

        存放视频的目录路径。

      • size Object (可选)

        • width number

          视频帧宽度。

        • height number

          视频帧高度。

        录制视频的可选尺寸。如果未指定,尺寸将等于viewport按比例缩小以适应800x800。如果未显式配置viewport,视频尺寸默认为800x450。如有必要,每个页面的实际图像将按比例缩小以适应指定尺寸。

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

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

      等待应用程序启动的最长时间(毫秒)。默认为30000(30秒)。传入0可禁用超时。

    • timezoneId string (可选) 添加于: v1.12#

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

    • tracesDir string (可选) 添加于: v1.36#

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

返回