剧作家强制点击隐藏元素不起作用

Playwright force click on hidden element does not work

我正在使用 Playwright 进行端到端测试。其中一个场景涉及检查 PDF 查看器 window 中显示的 pdf 的内容,为此已为最终用户隐藏了下载按钮。检查pdf内容涉及下载它,因此我使用了 Playwright 文档中提到的 force 选项: https://playwright.dev/docs/api/class-page#page-click

使用的实现如下:

innerFrameContent.click("//button[contains(@id, 'secondaryDownload')]", { force: true })

(xpath 是正确的,我在 Chrome 浏览器中检查并设法通过控制台单击该元素)

不幸的是,我从 Playwright 那里得到以下异常日志:

frame.click: Element is not visible
=========================== logs ===========================
waiting for selector "//button[contains(@id, 'secondaryDownload')]"
  selector resolved to hidden <button tabindex="54" title="Download" id="secondaryDown…>…</button>
attempting click action
  waiting for element to be visible, enabled and stable
    forcing action
  element is visible, enabled and stable
  scrolling into view if needed
============================================================
...

force 设置为 true 意味着您想绕过可操作性检查。这并不意味着 click 会起作用。
在这种情况下,如果 force 已设置为 false,操作将因超时而失败,它会等待元素可见。
force 为 true 时,您不会超时,但点击会失败,因为您无法点击不可见元素。

您可能需要找到其他方法来执行该操作,javascript 也许吧?