无法安装 playwright:找不到使用 Playwright 的项目。确保项目或解决方案存在于
Posted
技术标签:
【中文标题】无法安装 playwright:找不到使用 Playwright 的项目。确保项目或解决方案存在于【英文标题】:Cannot install playwright: Couldn't find project using Playwright. Ensure a project or a solution exists in 【发布时间】:2021-12-25 14:58:53 【问题描述】:我正在尝试在我的部署目标机器上安装 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?
编辑:
不幸的是,用于剧作家的 .NET nuget 包设计得不是很好。虽然 API 很棒,但部署却是一场噩梦。
不仅您无法在部署服务器上使用 CLI 安装浏览器,而且该软件包会为您的项目以及所有引用它的项目添加 3x NodeJS 运行时 (200MB)。
阻止这些文件被发布是很重要的,并且您的构建工件可以轻松地增长到每个构建的 1GB!
您无法配置 NodeJS 或剧作家本身的路径。
您可以在此处投票支持解决此问题: https://github.com/microsoft/playwright-dotnet/issues/1850
【问题讨论】:
【参考方案1】:需要在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
【讨论】:
但这对部署虚拟机没有任何意义。只有编译的二进制文件,没有项目。我不是在创建剧作家项目,我想执行它。见playwright.dev/dotnet/docs/cli#install-browsers Playwright CLI 只是从Microsoft.Playwright.dll
调用Microsoft.Playwright.Program.Run
的助手。此 dll 位于 NuGet 包 Microsoft.Playwright
中。此方法调用位于.playwright
文件夹中的exe。在构建项目时,此文件夹会复制到 build 文件夹中。这就是为什么在调用playwright install
之前需要一个项目文件并构建项目的原因。或者,您可以从代码安装浏览器。我已经用一个例子更新了答案。以上是关于无法安装 playwright:找不到使用 Playwright 的项目。确保项目或解决方案存在于的主要内容,如果未能解决你的问题,请参考以下文章
SpecFlow 测试无法使用 Playwright.NET 运行
Playwright JS - 如果找不到元素/选择器,如何全局定义/更改超时?
如何使用 PlayWright (python) 下载嵌入式 PDF?