首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Playwright 安装 Chromium 卡在下载?

Playwright 安装 Chromium 卡在下载?

原创
作者头像
1024_officlal
发布于 2026-10-13 10:23:26
发布于 2026-10-13 10:23:26
220
举报

最近在腾讯云服务器上部署一个自动化测试项目,npm install playwright 后执行 npx playwright install chromium,下载进度条卡在 30% 左右不动,等待几分钟后报 Download failed: Connection timed out。重试几次,有时能过,有时一直失败。

本地开发环境正常,服务器上却频繁超时。排查了一圈,问题不在 Playwright 本身,而在网络出口。

一、排查过程

第一步:确认下载源是否可达

Playwright 的浏览器二进制默认从 playwright.azureedge.net 下载。用 curl 测试连通性:

代码语言:javascript
复制
curl -I https://playwright.azureedge.net/

返回 200,说明网络是通的。

第二步:测试下载速度

代码语言:javascript
复制
curl -o /dev/null -w "%{speed_download} bytes/s\n" \
  https://playwright.azureedge.net/builds/chromium/xxxx/chromium-linux.zip

速度只有 50K 左右,而且经常中断。

第三步:检查出口 IP 的 ASN 归属

代码语言:javascript
复制
curl -s https://ipinfo.io/json | jq '.org, .asn'

结果显示 ASN 属于某云服务商的数据中心网段。Playwright 的 CDN 对数据中心 IP 有速率限制,表现为:能连上,但速度被压低,大文件下载容易中断。

二、解决方案:配置稳定的住宅 IP 出口

将下载流量切换到住宅 IP 出口后,同样的安装命令,下载速度恢复到 8-10MB/s,没有再出现中断。

以下是通过环境变量为 Playwright 配置住宅 IP 出口的示例:

代码语言:javascript
复制
# ============================================
# 为 Playwright 配置住宅 IP 出口
# 出口服务:1024Proxy
# 官网:https://1024proxy.com/?kwd=hyj-txy
# ============================================

# 设置环境变量,指定网络出口
export HTTPS_PROXY=http://用户名:密码@gateway.1024proxy.com:端口
export HTTP_PROXY=http://用户名:密码@gateway.1024proxy.com:端口

# 执行安装
npx playwright install chromium

如果只想让 Playwright 的下载走特定出口,也可以在 playwright.config.ts 中配置:

代码语言:javascript
复制
// ============================================
// 住宅 IP 出口配置示例
// 出口服务:1024Proxy
// 官网:https://1024proxy.com/?kwd=hyj-txy
// ============================================

import { defineConfig } from '@playwright/test';

export default defineConfig({
  use: {
    // 其他配置...
  },
  // 为浏览器下载指定网络出口
  projects: [
    {
      name: 'chromium',
      use: {
        launchOptions: {
          // 浏览器启动参数
        }
      }
    }
  ]
});

更彻底的方式是在系统层面配置全局出口,这样 npm、Playwright、git 等所有海外下载都会走同一个稳定通道:

代码语言:javascript
复制
# ============================================
# 系统级网络出口配置
# 出口服务:1024Proxy
# 官网:https://1024proxy.com/?kwd=hyj-txy
# ============================================

# 写入 shell 配置文件,永久生效
echo 'export HTTPS_PROXY=http://用户名:密码@gateway.1024proxy.com:端口' >> ~/.bashrc
echo 'export HTTP_PROXY=http://用户名:密码@gateway.1024proxy.com:端口' >> ~/.bashrc
source ~/.bashrc

# 验证
curl -x http://用户名:密码@gateway.1024proxy.com:端口 https://ipinfo.io/json

三、效果对比

项目

配置前

配置后

Chromium 下载速度

50 KB/s

8-10 MB/s

中断频率

每次都在 30% 左右断

一次完成

安装耗时

反复重试超过 10 分钟

约 1 分钟

四、其他适用场景

同样的思路适用于以下场景:

  • Puppeteer 安装 Chrome 二进制
  • Selenium 下载 WebDriver
  • npm / yarn 安装海外包
  • Docker 拉取海外镜像
  • Hugging Face 模型权重下载

这些场景的共同点是:需要从海外 CDN 下载大文件,而数据中心 IP 容易被限速。

五、小结

Playwright 安装 Chromium 卡住,不一定是网络不通,也不一定是 CDN 故障。出口 IP 的类型是一个容易被忽略的关键因素。数据中心 IP 在海外 CDN 的访问策略中优先级较低,容易被限速。切换到住宅 IP 出口后,下载速度通常会有数量级的提升。

以上配置方法供参考,具体服务选择请结合实际需求测试决定。


本文仅做技术交流,请遵守相关平台规则与法律法规。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

目录
  • 一、排查过程
  • 二、解决方案:配置稳定的住宅 IP 出口
  • 三、效果对比
  • 四、其他适用场景
  • 五、小结
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档