故障排除
浏览器依赖
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 发行版,您可能需要安装其他依赖项才能运行浏览器。
仅官方支持 Ubuntu 18.04、20.04 和 22.04。
另请参阅命令行工具,其中有一个命令可以自动为 Ubuntu LTS 版本安装所有必要的依赖项。