Playwright(.NET)调用浏览器版本与已安装版本不一致如何解决
你遇到的报错原因是:npx playwright install安装的是Node.js版本Playwright对应的浏览器包,.NET绑定的Playwright版本和Node版版本不一致,因此需要的浏览器内核版本不匹配,才会找不到对应路径的可执行文件,可通过以下三种方式解决:
方案1:使用.NET Playwright自带的工具安装匹配版本浏览器(最推荐)
不需要用npx安装,在你的项目根目录执行对应命令即可自动安装当前.NET Playwright版本适配的所有浏览器:
首先编译一次项目,再执行PowerShell命令:pwsh bin/Debug/<你的目标框架版本>/playwright.ps1 install
比如你的项目目标框架是.NET 6,就替换为pwsh bin/Debug/net6.0/playwright.ps1 install
要是你全局安装了Playwright CLI,直接执行playwright install也可以。方案2:手动指定现有浏览器的可执行文件路径
如果你不想重新安装浏览器,可以在启动Chromium的时候手动传入已有的浏览器路径,修改你的LaunchAsync配置即可,示例代码如下:browser = await playwright.Chromium.LaunchAsync(new BrowserTypeLaunchOptions { Headless = false, // 替换为你实际已安装的chrome.exe完整路径 ExecutablePath = @"C:\Users\username\AppData\Local\ms-playwright\你的chromium版本文件夹\chrome-win\chrome.exe" });方案3:通过环境变量全局指定浏览器路径
你可以配置系统环境变量,或者在代码初始化Playwright之前设置环境变量来指定路径,不需要每次启动都传参数:// 放在Playwright.CreateAsync()之前执行即可 Environment.SetEnvironmentVariable("PLAYWRIGHT_CHROMIUM_EXECUTABLE_PATH", @"你的chrome.exe完整路径");也可以设置
PLAYWRIGHT_BROWSERS_PATH环境变量指定浏览器根目录,Playwright会自动从该目录下查找对应版本的浏览器。
内容的提问来源于stack exchange,提问作者hubesal

