如何使用 playwright 和 TypeScript 处理动态/可自定义字段?

How can I handle dynamic/customizable fields with playwright and TypeScript?

提问人:Zeeshan Malik 提问时间:5/26/2023 更新时间:5/30/2023 访问量:278

问:

我在 Type Script 中使用 Playwright。如何处理动态字段,可以是文本字段、复选框或下拉字段?有什么解决办法吗?因为当我点击 URL 时,该页面上的字段是完全动态的。有时可能有 10 个字段(包括复选框、文本字段或下拉列表),有时可能有 20 个。那么,我如何使用 DOM 解析或任何其他解决方案来处理这个问题呢?

目前,我只处理静态字段。但是,有一些动态字段和自定义字段是从后端创建的,我不知道这些字段的定位器,因为它们在每次测试运行中都可能不同。如果有任何解决方案,请指导我。

DOM HTML 解析 playwright-typescript

评论


答:

0赞 candre 5/30/2023 #1

这可能会对您有所帮助:在定位器上使用 all() 方法,返回所有匹配项的数组。例如,可以通过以下方式获取所有文本框或所有按钮:

const textboxes = await page.getByRole('textbox').all()
const buttons = await page.getByRole('button').all()

然后,您可以遍历数组并对所有字段执行操作:

// Fills all textboxes
for (const textbox of textboxes) {
    await textbox.fill('Stuff')
}

// Clicks on all buttons
for (const button of buttons) {
    await button.click()
}