Playwright - 如何等待元素可点击

sum*_*mit 13 automation playwright playwright-test

就像在 selenium 中一样,我们在 Playwright 中是否可以选择等待元素可点击?

Ala*_*Das 8

对于page.click(selector[, options]),剧作家将确保:

  1. 元素附加到 DOM
  2. 元素可见
  3. 元素是稳定的,如没有动画或已完成的动画
  4. 元素接收事件,因为没有被其他元素遮挡
  5. 元素已启用

所以,你可以使用这个:

await page.click('button');
Run Code Online (Sandbox Code Playgroud)

如果你想添加一个超时,基本上是为了让剧作家完成上述检查然后点击,你可以这样做:

await page.click('button', {timeout: 9000});
Run Code Online (Sandbox Code Playgroud)

要首先检查该元素是否可见,然后根据结果单击另一个元素,您可以使用if-else如下所示的方法:

if (await page.locator('modal-selector').isEnabled()) {
  await page.click('button1')
} else {
  //do something
}
Run Code Online (Sandbox Code Playgroud)


Sim*_*lli 2

剧作家对此“自动等待”。

查看文档:https://playwright.dev/docs/actionability

您可以使用 isDisabled() 方法检查按钮状态

查看文档:https://playwright.dev/docs/api/class-elementhandle#element-handle-is-disabled