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

如何在部署环境中自动安装Playwright浏览器?

解决Ubuntu 18.04部署环境下Playwright浏览器自动化安装问题

针对你在Ubuntu 18.04部署环境中遇到的Playwright浏览器安装问题,这里提供几个可靠的自动化方案:

1. 使用独立Playwright CLI安装

Playwright提供了独立的Node.js CLI工具,完全不依赖.NET项目文件,适合部署环境直接使用:

  • 先安装适配Ubuntu 18.04的Node.js版本(建议16.x,兼容性较好):
    curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash -
    sudo apt-get install -y nodejs
    
  • 全局安装Playwright CLI:
    sudo npm install -g playwright
    
  • 安装所需浏览器(比如抓取Blazor Server需要的Chromium):
    playwright install chromium
    

如果不想全局安装,也可以在应用部署目录下本地安装:

npm init -y
npm install playwright
npx playwright install chromium

之后可通过./node_modules/.bin/playwright调用命令。

2. 在.NET应用启动时自动检查并安装浏览器

直接通过Playwright的.NET API在应用启动阶段完成浏览器安装,无需外部脚本:

using Microsoft.Playwright;
using System;

class Program
{
    static async System.Threading.Tasks.Task Main(string[] args)
    {
        var playwright = await Playwright.CreateAsync();
        var chromium = playwright.Chromium;
        
        // 检查浏览器是否已安装,未安装则自动触发安装
        if (!chromium.IsInstalled)
        {
            await chromium.InstallAsync();
        }

        // 后续的页面抓取逻辑
        await using var browser = await chromium.LaunchAsync(new BrowserTypeLaunchOptions { Headless = true });
        var page = await browser.NewPageAsync();
        await page.GotoAsync("你的Blazor Server页面地址");
        var content = await page.TextContentAsync("body");
        // 处理索引构建逻辑...
    }
}

注意:确保运行应用的用户有写入~/.cache/ms-playwright目录的权限,如果是服务账户运行,可通过环境变量PLAYWRIGHT_BROWSERS_PATH指定自定义安装路径。

3. 预打包浏览器到部署包(离线场景适用)

如果目标环境无法联网,可在构建阶段提前安装浏览器并打包到部署文件中:

  1. 在构建机器上运行playwright install chromium,浏览器会被下载到~/.cache/ms-playwright/chromium-<版本号>目录
  2. 将该目录复制到你的.NET项目的输出目录(比如./playwright-browsers),并确保部署时包含该目录
  3. 在应用中指定浏览器的可执行路径:
await using var browser = await playwright.Chromium.LaunchAsync(new BrowserTypeLaunchOptions
{
    ExecutablePath = Path.Combine(AppContext.BaseDirectory, "playwright-browsers", "chromium-<版本号>", "chrome-linux", "chrome")
});

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 10:52:54