问题标签 [playwright-sharp]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
447 浏览

.net - 剧作家Sharp Docker镜像问题

我正在尝试为我的剧作家测试创建一个 docker 映像,这是一个使用 xunit 的 .net 5 项目。

当我尝试启动 docker 映像时,出现以下错误

这是我的码头文件

它似乎来自 nuget 包中的 playwrightSharp.targets 文件。我试图注释掉目标,但我认为它必须被缓存在某个地方,因为它的行为就像它没有被注释掉一样。我什至尝试删除目标文件但仍然收到错误:

似乎 /root 会在 docker 映像中?我对码头工人的了解不够,甚至不知道去哪里找。

任何帮助,将不胜感激!谢谢

0 投票
0 回答
732 浏览

puppeteer - 使用 Playwright for .Net 连接到现有浏览器

我们有一个单一的 Asp Core API 方法,它使用无头 Chromium 将提供的 html 转换为 PDF。目前 API 方法使用 Puppeteer,它使用调试端口连接到现有的 Chromium 实例并生成 PDF。Chromium 需要在应用程序启动之前或启动时启动。这一切都很好。

我们现在正在考虑重写 API 以使用 Microsoft.Playwright 而不是 Puppeteer。但是,使用 Playwright for .Net 似乎无法连接到现有浏览器实例,我们总是需要使用 BrowserType.LaunchAsync,它会创建一个新实例。我可以看到 BrowserType.Connect 可用于所有其他 API(节点、python、java),但不适用于 .Net。

有没有办法避免使用 .Net Playwright API 为每个 API 请求启动新浏览器?这非常耗时,在我们的案例中性能非常重要。

0 投票
0 回答
622 浏览

asp.net-core - 剧作家不在 asp.net 核心应用程序的 docker 容器中工作

我创建了一个简单的 Asp.net 核心应用程序,并想在我的项目中测试 playwright。它在本地环境中运行良好,但是当我尝试在 docker 容器中部署时,得到错误为Driver not found: /app/.playwright/node/linux/playwright.sh.

测试.csproj

DockerFile

示例应用程序.cs

任何帮助表示赞赏。

0 投票
1 回答
593 浏览

c# - 如何为 Playwright .NET 创建全局配置?

我计划使用 Playwright .NET 在 C# dotnet 项目中执行自动化 UI 测试。问题是我希望拥有可以设置的全局配置,而不是需要在每个测试的上下文中重复定义相同的设置,但我似乎找不到任何工作示例。

playwright.dev上的文档暗示我应该能够在项目的根目录中简单地包含一个“playwright.config.js”文件,但没有明确定义该文件的内容应该是什么。我已经尝试了为 Playwright Node.js 提供的示例,使用:

但是,这些设置似乎并未应用,也没有迹象表明 playwright.config.js 文件正在加载或失败。

任何帮助或一个简单的例子让我指出正确的方向将不胜感激。

0 投票
1 回答
469 浏览

c# - 无法使用 C# 语言在剧作家自动化中下载文件

我无法使用剧作家自动化从浏览器下载文件。
我正在使用 C# 语言进行自动化。我已经使用 acceptDownload 创建了浏览器上下文,还提供了文件下载的目录路径。基本上代码被卡在 RunAndWaitForDownloadAsync 方法上,并且在那之后发生了注意事项。请在下面找到我用来下载文件的内容。

0 投票
0 回答
301 浏览

docker - 在 asp docker 镜像上安装 Playwright

我有一个使用 .net 5 的 Asp web api 应用程序。该应用程序使用 Playwright 生成 pdf。它在 iis 上本地工作,没有任何问题。当我在下图中使用 docker windows 容器运行它时:

它抱怨缺少 Chromium。我尝试使用多种方式在该图像上安装剧作家,但失败了。该图像没有安装 dotnet .sdk 也没有 powershell。在我的 bin 文件夹中,我确实有 playwright 安装文件:

如果我从那里跑:

它下载并安装浏览器二进制文件,但在我的 Asp 应用程序中,我现在收到有关缺少依赖项的错误:

PlaywrightException:主机系统缺少依赖项!

缺失库的完整列表:dwrite.dll uiautomationcore.dll winspool.drv dxgi.dll

我在 Linux 容器上尝试了类似的方法,但结果相似。Playwright 教程中使用“dotnet tool”命令的方法不起作用,因为没有 dotnet sdk。

让 Playwright 处理该 asp 图像的最佳方法是什么?

0 投票
0 回答
118 浏览

webkit - 使用 webkit 的剧作家无法加载资产

尝试在 Mac 上使用 webkit 运行 Playwright 测试时,无法加载各种资产。

这就是它的样子......

在此处输入图像描述

与铬的外观相比......

在此处输入图像描述

它在同一台机器上的 safari 上也可以正常工作。

当我在 webkit 中查看控制台时,有各种与资产检索有关的 403 错误....

在此处输入图像描述

这里可能是什么问题?

我尝试调整浏览器上下文选项——接受下载、忽略 https 错误、绕过 CSP,但没有任何区别。

我还下载了 Safari Technology Preview 并且资产加载良好。

我在 macOS Big Sur 上使用 Playwright 1.13 和 .NET

0 投票
0 回答
150 浏览

c# - 如何在 Xunit 中将数据从一个测试传递到另一个测试?

我将 Playwright 与 C# 和 Xunit 一起使用,但我认为 Selenium 和 Xunit 用户也可以提供帮助。我需要在一个测试中获取一个元素的值并将这个值传递给另一个测试。例如,

这是一个简单的例子,现实生活中的测试有很多步骤,所以我想把一个大的分解成几个小测试。

0 投票
0 回答
118 浏览

playwright - 无法使用 Playwright 使用新上下文页面

下面是我的代码,我试图在新选项卡上执行一些操作,当单击原始选项卡上的链接时会出现这些操作。在打开新页面之前它工作正常,但之后在新页面上没有执行任何操作并且测试也没有停止,它只是进入了一些无限循环。

测试钩子

页面对象

0 投票
1 回答
135 浏览

asp.net-core - 使用 Microsoft.AspNetCore.TestHost 调试 playwright-dotnet 测试很热门

我试图通过使用来自xUnitAspNetCore.TestHost的调试在本地运行Playwright,即使当我调用 API 端点时调用成功,SPA 页面也没有加载。

有什么我应该做更多的改变WebApplicationFactory吗?

到目前为止,我已经尝试过这种方法:

CustomWebApplicationFactory.cs

PlaywrightFixture.cs

单元测试1.cs

收到 200 并呼叫控制器,apiCallSimulation但如果我尝试访问链接,我将无法访问。

有没有办法实现在本地运行测试?我知道有手动启动项目并提供 url 的解决方案,但我想在集成测试中这样做。

我想到了另一个使用 Pragma 标记的想法,如果正在开发中运行dotnet .dll ,但我可能会遇到带有 CI/CD 的 Azure DevOps 问题