剧作家强制点击隐藏元素不起作用
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 也许吧?
我正在使用 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 也许吧?