问题标签 [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 浏览

c# - 使用 Microsoft Playwright 在 Azure Function Linux 消费计划中创建本地 PDF 文件

我正在使用 Microsoft Playwright从 Azure 函数(HTTP 触发器)内的远程网站创建 PDF。使用的方法是 page.GetPdfAsync(),它只处理文件路径以创建生成的 PDF 文件。我想将文件存储在 Azure Blob 存储容器中,但由于 GetPdfAsync() 方法不处理流或 Azure blob 存储,我正在尝试临时存储生成的文件。我尝试使用不同的本地文件夹,例如/tmp/local但每次触发该函数时,我都会在跟踪中看到一个异常,指出文件系统是只读的

我阅读了Anthony Chu的这篇博文,所以似乎 Linux 消费计划现在支持 Playwright,但在文章中,生成的屏幕截图直接在 HTTP 响应中发回,并且从未存储在本地磁盘上。

对于编码环境,我使用 C#、VS 2019 和 Azure Function Core Tools + Azure CLI 进行部署。

知道如何处理这种情况吗?

0 投票
3 回答
1360 浏览

.net - PlayWright-Sharp 的好的 PageObject 示例似乎不存在

我正在寻找一个好的 PageObject 示例::

这是我正在尝试的示例...但是当我从另一个文件开始测试时... InstallAsync() 开始测试,当然会失败,因为 ipage 为空

为什么没有返回 ipage 对象?

0 投票
2 回答
1897 浏览

c# - 您如何使用 Playwright 获得下拉列表的选定选项

我正在使用 Playwright 的 C# 语言绑定。

示例 HTML:

我知道我可以Page.SelectOptionAsync用来设置下拉列表的选定选项,但是如何获取当前选定的选项?

当我查看 DropDown 的所有属性时,我看不出ElementHandles.

0 投票
2 回答
563 浏览

c# - 接受与剧作家夏普的对话

如何使用 Playwright Sharp 接受如下所示的对话框?

确认对话框

我似乎在 Playwright Sharp 的文档中找不到任何内容,但是 Playwright 的 (JS) 文档描述了如何为对话框添加事件处理程序:

page.on('dialog', dialog => dialog.accept());

在 Playwright Sharp 中是否有类似的方法可以做到这一点?

0 投票
3 回答
882 浏览

playwright - 如何进入浏览器窗口句柄并能够在选项卡之间切换?

所以我正在从 Selenium .net 转移到 PlayWrightSharp 的过程中,我所做的是获取当前句柄并能够在选项卡之间切换......我无法在 playwrightsharp 中找到一个明确的方法来做到这一点。

示例:硒

PlayWriteSharp:

必须有类似于 selenium 的东西才能获取当前浏览器并在一次调用中找到所有页面并能够在选项卡之间切换

有什么想法吗?

0 投票
1 回答
3285 浏览

c# - 点击链接在剧作家中不起作用

我正在尝试为特定网站编写爬虫。在某些时候,我必须单击一个链接。找到该元素,但单击总是失败。我也尝试通过具有相同结果的父元素来实现它。之前的所有其他元素都可以毫无问题地访问,并且单击它们也可以正常工作。有人知道我做错了什么吗?

这是网站上的代码

在此处输入图像描述

这就是异常给我的: 在此处输入图像描述

应单击的元素的屏幕截图 在此处输入图像描述

0 投票
0 回答
544 浏览

invisible-recaptcha - 编剧:PrintToPDF 未实现

我正在尝试使用https://playwright.dev/docs/languages构建一个“跑步者”(net core 3.1),它将通过网站并生成每个页面的 PDF(出于法律原因,客户需要制作时不时地复制更改,这需要重新生成每页的所有 PDF,非常乏味和破坏灵魂。

我已经按照https://github.com/microsoft/playwright-sharp/tree/main/demos/PdfDemo成功设置了一个控制台应用程序。我可以进入主页,我可以进入登录页面,填写用户名、密码并尝试提交,但是页面上有 recaptcha [在“无头”设置中运行]。

似乎我不能通过首先“单击”该字段然后用用户名/密码“填充”它(在“无头”配置中运行)和提交来“愚弄”recaptcha,因为这会被“机器人”阻止。

所以我试图以“非无头”运行,但随后出现错误

PrintToPDF 未实现。

接下来我知道,我将我的配置恢复为“无头”,重新运行代码,现在recaptcha 没有抱怨,我可以提交表单并通过recaptcha。

有人用剧作家和谷歌recaptcha 做过这些工作吗?

0 投票
1 回答
830 浏览

docker - Docker 容器中托管的 .NET Core 3.1 应用程序中的 Playwright-sharp

我创建了一个围绕 Playwright-sharp v0.192.0 包装功能的 .NET Core 3.1 nuget 库。我在 REST API(也是 .NET Core 3.1)中使用这个库,并且在本地一切正常。唯一的要求是主机应用程序还需要引用 Playwright-sharp 才能正确下载驱动程序。这是我可以忍受的。

当我尝试在 Docker (linux) 中运行我的 REST API 时出现问题。安装依赖项(libc6、libgdi 等)后,我得到了这个异常:

一个建议是从 Playwright-sharp 图像而不是 .NET 3.1 开始,但在我看来,这应该是一种包含所需文件并将它们放置在正确位置以使其工作的方法。我当前的 dockerfile 如下所示:

这一步:

将文件复制到与我在官方 Playwright-sharp docker 映像中看到的相同的文件夹中。

有没有人有一个工作的 Dockerfile 来安装所需的 Playwright 驱动程序,以便在 Docker 容器内生成无头 PDF?

0 投票
1 回答
101 浏览

snapshot-testing - 如何格式化 Verify.PlayWright 返回的 HTML 以便更好地比较

我正在使用Verify.PlayWright并拍摄 HTML 元素快照。当比较打开时,所有的 HTML 都在一行上。这使得很难看出差异。有没有办法格式化 HTML 以获得更好的比较?

0 投票
3 回答
268 浏览

f# - 如何在 F# 中使用 Playwright Sharp 进行浏览器自动化

我想这是一个经典的 C# 到 F# 的转换,我还没有完全理解。

我正在尝试使用快速启动自动化浏览器

https://playwright.dev/dotnet/docs/intro

C#代码是

我已经开始了,但已经有点迷失了。

类型不正确。我在这里做错了什么?