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

c# - 无法使用 Playwright .NET 录制 HAR

我正在尝试使用 Playwright 录制 HAR 文件。

根据文档,您需要做的就是传入RecordHarPathBrowserContextOptions调用CloseAsync.BrowserContext

使用 Firefox,这不会创建任何 HAR 文件。使用 Chromium,它会挂起CloseAsync并且永远不会完成。

例如

0 投票
1 回答
66 浏览

c# - PlayWright 中的自定义选择器

是否可以在 Playwright 中添加自定义选择器?(在 C# 中首选)

例如,我们的应用程序使用了[data-automation-name=SOMENAME]HTML 中的自定义属性,每次都写起来有点麻烦:

我更喜欢这样写:

我搜索了文档和 GitHub 存储库但没有成功。

0 投票
1 回答
62 浏览

c# - FileSystemWatcher 在功能后不会触发

我正在创建一个 C# 程序来帮助我测试我开发的网站并且遇到了一些问题。目标是让程序为我的网站存储不同的帐户及其关联的 cookie,以便它可以自动登录以进行测试。现在我正在使用 Playwright 进行浏览器自动化以及 cookie 存储(这些都没有问题)。但是,我的问题似乎源于我保存 cookie 后 FileSystemWatcher 没有触发的事实。

我的目标是在每次添加新帐户时使用我保存的帐户更新我的程序界面。为此,我使用 FileSystemWatcher 调用一个函数,该函数从文件中重新加载我的所有用户帐户。

我创建 FileSystemWatcher 的函数如下所示:

我想专门查看那个“accounts.dat”文件,所以我将它添加为过滤器,正如您从我的代码中看到的那样。

要添加新帐户,我的功能如下所示:

我的登录功能是:

最后,我保存 cookie 的功能是:

正如您从我的代码中看到的那样,每个会话都通过帐户关联到一个用户帐户,Guid因此我以后可以轻松访问与该帐户相关的正确会话。我认为这个问题源于我的写 cookie 函数是异步的,所以它抛出了 FileSystemWatcher,所以我尝试分离会话和帐户来解决这个问题,但没有运气。我似乎无法弄清楚我做错了什么,但似乎事件在首次创建帐户时触发,然后一旦我写入 cookie,它就不会再次触发,直到我手动重新加载表单。我很感激任何帮助。

另外,现在我正在打开文件以获取现有数据,关闭它,然后以Truncate模式重新打开它,因为我想每次都清除文件,所以如果你推荐一种更好的方法来将新对象添加到我的列表中,我很乐意听到他们。

谢谢!

0 投票
1 回答
101 浏览

c# - playwright-dotnet:如何获取具有多个 css 类的元素

在下面的示例中,如何使用 playwright-dotnet 获取图像的 url?

我试图用 await 选择 divpage.InnerHTMLAsync("div.v-image__image v-image__image--contain");无济于事。

先感谢您。

0 投票
1 回答
86 浏览

c# - Do/While 无限循环发出 c#

我正在自动与一个网站交互,用户必须手动刷新页面 n 次(有时 3 或 5 次甚至更长),以便按钮出现在网页上。为了克服这个问题,我创建了一个 do / while 循环,它应该刷新页面,直到按钮可见,以便可以单击它。问题是它不同步并无限循环。我尝试了下面的脚本,但它仍然没有停止刷新。知道如何让它在元素可见后立即停止刷新吗?默认情况下,该元素是不可见的,因此用户必须先刷新页面。刷新有效,但速度非常快,并且没有足够的时间检查按钮的可见性状态,也许这就是它进入无限循环的原因

0 投票
1 回答
267 浏览

c# - 在 Docker 容器中运行 Playwright.NET 测试

我有以下 Dockerfile:

我使用以下命令构建图像:

一切都很好,但是当开始执行测试时,我得到:

来自 UnitTest1.cs 的第 96 行:

是否有另一种方法来安装在 Docker 中运行 Playwright 测试所需的那些依赖项?测试在本地环境中运行,没有任何问题,但是当我尝试在容器内启动浏览器实例时,会抛出错误。

0 投票
0 回答
43 浏览

.net - 使用 playwright.net 截取屏幕截图并将其与另一张图像进行比较 - C#

我正在尝试截取页面上某个部分的屏幕截图,并将其与已使用 playwright 和 .NET 保存的另一张图像进行比较。我设法截取了屏幕截图,但我无法进行比较。在剧作家网站上,他们展示了如何使用 javascript 来做到这一点,但 .Net 中没有等价物。谁能告诉我如何使下面的代码在.NET中工作。谢谢

0 投票
1 回答
10 浏览

playwright - 如何从 Playwright POST 返回 JSON?

我在 C# 中创建了一个小的 Playwright 程序,它提交一个 Url,在返回的文档上找到一个按钮,选择该文档上的一个按钮并“单击”它。如果我使用 Fiddler,我可以看到“点击”会生成一个显示返回 JSON 的 POST,但我似乎找不到任何允许我返回这个 JSON 的 Playwright 方法或例程。这是片段:

任何人都可以帮助我从“await page.ContentAsync();”中获得“响应”吗?返回我可以在 Fiddler 中看到的 JSON?