You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker容器中Playwright运行出现ERR_CERT_AUTHORITY_INVALID错误求助

AWS Batch容器里Playwright证书错误的排查办法

几个关键排查点

1. 确认Playwright配置真的生效

  • 检查playwright.config.js里的ignoreHTTPSErrors是否放在正确层级,比如use节点或对应项目配置中,别漏在根节点:
    // 正确写法参考
    module.exports = {
      use: {
        ignoreHTTPSErrors: true,
        // 其他配置...
      },
      projects: [
        {
          name: 'chromium',
          use: { ...devices['Desktop Chrome'], ignoreHTTPSErrors: true },
        },
      ]
    };
    
  • 测试文件创建上下文时,要明确设置该参数,避免覆盖全局配置:
    const context = await browser.newContext({ ignoreHTTPSErrors: true });
    

2. 验证容器环境变量加载情况

  • 确保Dockerfile里的ENV NODE_TLS_REJECT_UNAUTHORIZED=0放在测试命令执行前,比如不要在RUN npm install之后设置,保证测试进程启动时变量生效。
  • 在run.sh开头添加echo $NODE_TLS_REJECT_UNAUTHORIZED,执行时查看输出是否为0,排除变量被覆盖的可能。

3. 给Playwright浏览器加硬启动参数

  • 确认容器内Playwright浏览器完整安装,Dockerfile中需执行npx playwright install --with-deps chromium(替换为你使用的浏览器),缺失依赖会导致证书处理逻辑异常。
  • 尝试直接给浏览器传证书忽略参数,以Chromium为例:
    const context = await browser.newContext({
      ignoreHTTPSErrors: true,
      args: ['--ignore-certificate-errors', '--ignore-ssl-errors']
    });
    

4. 排查AWS Batch网络环境限制

  • 若测试目标使用内部自签证书,可将证书导入容器系统证书库:
    # 将自签证书ca.crt复制到容器证书目录
    COPY ca.crt /usr/local/share/ca-certificates/
    RUN update-ca-certificates
    
  • 检查容器是否能访问证书颁发机构地址,私有网络中CA地址不可达也会触发验证失败。

5. 排除npm脚本参数传递问题

  • 确认package.json的test脚本配置正确:
    "scripts": {
      "test": "playwright test --ignore-https-errors"
    }
    
  • 直接在容器内执行npx playwright test --ignore-https-errors,绕过npm脚本,验证参数是否正常传递。

内容的提问来源于stack exchange,提问作者Ram

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 04:42:08