安装 Playwright 失败:找不到使用 Playwright 的项目。请确保已存在一个项目或解决方案。

5

我正在尝试在部署目标机器上安装 Playwright 以运行 UI 测试。

# Install the CLI once.
dotnet tool install --global Microsoft.Playwright.CLI

playwright install

然而,当使用Playwright CLI(包括playwright install)时,我会遇到以下问题:

无法在 Playwright 中找到项目。请确保 C:\users\myuser 中存在项目或解决方案,或使用 -p 提供其他路径。

我如何在虚拟机上安装Playwright?

编辑:

不幸的是,Playwright 的 .NET nuget 包设计得不是很好。尽管API很棒,但部署过程却是一场噩梦。

你不能使用CLI在部署服务器上安装浏览器,并且该包会将3倍的NodeJS运行时(200MB)添加到你的项目中,以及所有引用它的项目。

很难防止这些文件被发布,而且你的构建产物很容易每次构建都增长1GB!

你无法配置NodeJS路径或Playwright本身的路径。

你可以在此处为修复此问题投票: https://github.com/microsoft/playwright-dotnet/issues/1850

2个回答

8

您需要在包含 csproj 的文件夹中执行 playwright install 或使用 -p 指定项目文件。

# Create project
dotnet new console -n PlaywrightDemo
cd PlaywrightDemo

# Install dependencies, build project and download necessary browsers.
dotnet add package Microsoft.Playwright
dotnet build
playwright install

请查阅文档以获取更多详细信息:https://playwright.dev/dotnet/docs/intro#first-project

您还可以使用以下代码安装浏览器:

using Microsoft.Playwright;

var exitCode = Microsoft.Playwright.Program.Main(new[] { "install" });

更多细节: https://www.meziantou.net/distributing-applications-that-depend-on-microsoft-playwright.htm

2
但是在部署 VM 上没有任何意义。只有已编译的二进制文件,没有项目。我不想创建 Playwright 项目,我想执行它。请参见 https://playwright.dev/dotnet/docs/cli#install-browsers。 - Liero
2
Playwright CLI只是一个帮助程序,用于从Microsoft.Playwright.dll中调用Microsoft.Playwright.Program.Run。这个dll在NuGet包Microsoft.Playwright中。该方法调用位于“.playwright”文件夹中的exe。当构建项目时,此文件夹会复制到构建文件夹中。这就是为什么您需要一个项目文件并在调用“playwright install”之前构建项目的原因。或者,您可以从代码中安装浏览器。我已经更新了答案,并提供了一个示例。 - meziantou

0
我的解决方法是在管道中构建解决方案之前,使用 .net core 的 restore 命令重新安装 playwright 包,并在构建管道后使用 PowerShell 安装播放器驱动程序,如下所示:

选择类型:FilePath

脚本路径:YourProjectName\bin\Debug\netcoreapp3.1\playwright.ps1


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接