Skip to main content

故障排除

浏览器依赖

Playwright 每次运行时都会进行自检,以确保浏览器可以成功启动。如果缺少依赖项,playwright 将打印获取它们的说明。

另请参阅命令行工具,其中有一个命令可以自动为 Ubuntu LTS 版本安装所有必要的依赖项。

代码转译问题

如果您使用 JavaScript 转译器(如 babel 或 TypeScript),使用异步函数调用 evaluate() 可能无法正常工作。这是因为虽然 playwright 使用 Function.prototype.toString() 来序列化函数,但转译器可能会以与 playwright 不兼容的方式更改输出代码。

解决此问题的一些方法是指示转译器不要干扰代码,例如,配置 TypeScript 使用最新的 ECMAScript 版本("target": "es2018")。另一个解决方法是使用字符串模板而不是函数:

await page.evaluate(`(async() => {
console.log('1');
})()`);

Node.js 要求

Playwright 需要 Node.js 版本 14 或更高版本

ReferenceError: URL is not defined

Playwright 需要 Node.js 14 或更高版本。

Unknown file extension ".ts"

"type": "module" 项目中运行 TypeScript 测试需要 Node.js 16 或更高版本。

不兼容的 Microsoft Edge / Google Chrome 策略设置

已知当设置某些 Microsoft Edge / Google Chrome 策略设置时,Playwright 无法按预期工作。以下显示了其中一些,可能还有更多影响 Playwright 功能的策略。如果您发现任何其他破坏功能的策略设置,请提交问题,我们将把它添加到本文档中。您可以通过在浏览器中运行 chrome://policy 来查看应用的策略列表。

  • UserDataDir - 此策略用于指定用户数据目录的位置。Playwright 使用临时目录作为用户数据,因此此策略与 Playwright 不兼容。请参阅此错误中的讨论。
  • ExtensionInstallForcelist - 此策略用于指定应安装的扩展列表。如果设置了此策略,Playwright 的浏览器关闭将无法正常工作。请参阅此错误中的讨论。

WebKit Web Inspector

在执行期间启动 WebKit Inspector 将阻止 Playwright 脚本执行任何进一步的操作,并将重置预配置的用户代理和设备模拟。

这是一个已知的限制。

系统要求

Chromium、Firefox 和 WebKit 的浏览器二进制文件可在 3 个平台(Windows、macOS、Linux)上运行:

Windows

适用于 Windows 和 Windows Subsystem for Linux (WSL)。

macOS

需要 11 (Big Sur) 或更高版本。

Linux

根据您的 Linux 发行版,您可能需要安装其他依赖项才能运行浏览器。

note

仅官方支持 Ubuntu 18.04、20.04 和 22.04。

另请参阅命令行工具,其中有一个命令可以自动为 Ubuntu LTS 版本安装所有必要的依赖项。