问题标签 [playwright-test]
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.
javascript - 如何从像测试这样的用户旅程的玩笑转移到使用夹具的@playwright/test?
我个人认为playwright
这是一种进入系统/端到端测试方向的工具。因此,我使用playwright
+jest
来构建用户旅程并将它们集成到 CI/CD 流程中。
由于playwright
创建了自己的测试运行器,具有拍摄视频和跟踪故障等有用功能,因此jest
从@playwright/test
. 在他们的主页上playwright
建议使用测试装置,所以我绝对想将它们包含在开关中。
下面我以亚马逊为例。
使用playwright
+jest
我做的第一件事是为环境的通用设置创建一个函数:
当然还有一个再次清理所有内容的功能:
然后我会为每个用户旅程使用一个文件。在亚马逊的情况下,用户旅程可能是订单的成功处理:
如您所见,我将测试分成逻辑部分以使其更具可读性,并查看它在哪个步骤(test
块)失败。
将其迁移到@playwright/test
+ 固定装置的最佳方法是什么?
- 您将如何迁移
setupSuite
/teardownSuite
?是的,您可以使用夹具,但setupSuite
需要像 userConfig 这样的参数。是否可以有参数化的夹具? - 您将如何使用固定装置构建测试?例如,如果您想模拟完整的用户旅程,那么测试将变得比仅测试登录更大。然后,一个测试块将有很多行,而无法构造它们。
- 是否可以设置一个页面以便在所有测试中共享?
beforeAll
钩子不接收任何页面,并且每个块test
总是接收自己的页面。test
这意味着块之间没有连接。如果您手动创建一个页面beforeAll
并在每次测试中使用相同的页面实例,这可能是一种不好的做法,视频和跟踪可能不起作用..那么这里可以做什么? - 用户旅程之类的测试真的很糟糕吗?我觉得它们不能与
playwright
文档中提到的夹具方法很好地结合起来。playwright
感觉非常data-driven
适合end-to-end
测试 IMO的夹具。
css-selectors - 相当于剧作家中的 by.name 选择器
我一直在尝试学习剧作家,并且在实施过程中我正在尝试编写一个测试用例,它通过名称找到一个输入元素并用一些值填充它
不幸的是,该元素只有类和名称属性。我一直在尝试找到一种阅读方法,但在文档上没有找到任何内容,或者我可能错过了
请帮助
javascript - 无法运行剧作家“写作断言”示例
TL;博士
无法从Playwright Getting Started页面获取“Writing Assertions”示例。
全文
我正在寻找Playwright来编写测试。我正在通过Getting Started示例进行工作,并且遇到了Example #2 (Writing Assertions)的问题。我正在我的工作机器 (macOS) 上执行此操作,并且还没有机会在家里的 Linux 机器上尝试它,如果这有所作为的话。
有问题的例子是:
我遇到的最初问题是这条线失败了:
我能够通过更改.toHaveTitle()
查找正则表达式来解决它,所以现在它看起来如下所示:
但是,当我运行它时,我现在得到以下信息:
注释掉每个await expect(...)
语句只会在下一个await expect(...)
语句中重复错误。如果我将它们全部注释掉,那么会await page.click(...)
按预期运行,但下一个会await expect(...)
再次失败。
更新
所以......问题似乎在于,问题在于page.locator(...)
所写的返回多个元素,这应该是显而易见的,因为我看到了以下错误:
评估失败:错误:违反严格模式:选择器解析为 2 个元素。
所以我更改了以下行:
到
我认为这可以解决问题。但是,现在我超时了。
playwright - 无法通过 VNC 查看器查看剧作家 docker 测试执行
我正在尝试在 mcr.microsoft.com/playwright:bionic docker container 中执行脚本。
我已经暴露了端口 5900,如下所示,但是当我尝试使用 vnc 查看器 localhost:5900 时无法连接到主机。我可以通过 vnc 查看器查看其他 docker 容器,例如 selenium/standalone-chrome 执行,但不能通过 playwright !
如何查看剧作家 docker 容器测试执行情况?还有其他方法可以让我实时查看测试执行吗?任何帮助将非常感激 !
docker - 如何获取 Playwright 的 Docker 容器的 playwrightUrl(需要集成空手道脚本)?
我正在尝试在mcr.microsoft.com/playwright:bionic
Docker 容器中执行空手道脚本。
我已经暴露了端口 5900,如下所示,但不确定如何获取playwrightUrl
容器的端口。我是否需要在node server.js
其中执行以获取 websocket 端点?
javascript - 如何在剧作家中选择部分句子?
在我的自动化脚本中,我有一句话 - “我的帐户什么时候准备好?”。从这句话中我想选择“帐户”这个词。所以基本上我想突出显示该文本,然后右键单击它。我坚持使用自动化工具剧作家突出显示文本“帐户”。
页面元素看起来像这样。
typescript - TypeScript + Playwright 错误:找不到模块
我遇到了剧作家编码测试自动化的问题。运行测试时,test.spec.ts出现如下错误:
错误:找不到模块“@common/common” 代码:“MODULE_NOT_FOUND”
如何解决这个问题呢?
下面有代码
测试规范.ts
包.json
tsconfig.json
node.js - 如何使用 Playwright 滚动到特定浏览器版本?
我需要在不同的 Chromium 版本中使用 Playwright 运行一些测试。我有不同版本的不同 Chromium 文件夹,但我不知道如何使用 CLI 从一个版本切换到另一个版本来运行我的测试。一些帮助?谢谢 :)
typescript - 重试失败的 Playwright 测试 cookie 问题
我在我的 Playwright 测试中使用了以下 jest 对象jest.retryTimes()
来重新运行测试,如果它第一次失败最多 3 次,如下所示。我注意到的是,当您npm run test
第一次使用命令执行测试时,它会打开新浏览器、导航到网站、关闭 cookie、选择汽车选项、重定向到新页面并检查是否存在特定文本。当此测试失败并再次重试时,它会在同一浏览器中执行此操作,因此 cookie 弹出窗口不会再次出现以关闭。因此重试总是会失败。
是否有一个简单的解决方案来解决这个问题,所以它也适用于出现的无头浏览器?
playwright - Playwright - 针对不同的环境和不同的变量进行测试
我希望使用 Playwright 来测试网页。
我正在使用的系统有 4 个我们需要部署的不同环境,例如测试 url 可能是
www.test1.com
www.test2.com
www.test3.com
www.test4.com
第一个问题是如何针对不同的环境?在我的剧作家配置中,我有一个 baseUrl,但我需要覆盖它。
此外,每个环境都有不同的登录凭据,我如何创建和覆盖这些作为每个环境的参数?