如何修复 Playwright 上的不稳定测试?

问题描述 投票:0回答:1

嗨,我正在测试这个应用程序。应用程序本身将填充该值并单击按钮以在表中提供数据。然而,实际上加载数据本身需要超过 40 秒的时间,因此在使用 playwright 时,默认有 30 秒的超时时间。通过加载数据,它会刷新实际的应用程序,而不是仅显示表数据值。

我做了什么:

  1. 在进入下一个代码之前使用 waitforselector 来加载特定元素
  2. 将配置超时添加到 100(尽管我知道这不是一个好的做法)
  3. 通过将并行运行设置为 false 将测试设置为串行
  4. 每个测试文件限制工作人员 1 人

我有 8 个测试用例,每个测试文件总共 4 个。

这是我的代码:

await page.goto(url)
await page.locator('.txtname').fill(namehere)
await page.focus('.btnsubmit')
await page.keyboard.press('Enter')
await page.waitForSelector('.eid')
await expect(await page.locator('.eid').toBeDefined())

如您所见,我使用焦点并输入,而不是使用 .click。为什么?当我使用点击事件时,即使我在配置上将其设置为 100 秒,但当我想出执行输入按钮的替代方案时,它总是超时。

我可以知道我还能修复这里测试用例的不稳定或失败问题吗?

错误:waitforselector 元素超时超过 100000MS/片状

我做了什么:

  1. 在进入下一个代码之前使用 waitforselector 来加载特定元素
  2. 将配置超时添加到 100(尽管我知道这不是一个好的做法)
  3. 通过将并行运行设置为 false 将测试设置为串行
  4. 每个测试文件限制工作人员 1 人

我有 8 个测试用例,每个测试文件总共 4 个。

testing automated-tests e2e-testing playwright functional-testing
1个回答
0
投票

尝试使用“点击”事件的“延迟”选项。

await page.locator('.btnsubmit').click({delay: 70});

这可能对您的情况有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.