首页 > 解决方案 > 如何在clojure中使用etaoin做一个涉及shadowDom的querySelector

问题描述

我正在使用etaoin 进行一些webdriver-automation,并且需要单击一个按钮进行一些测试。我已经能够使用在浏览器控制台中运行的以下 javascript 代码来完成,但需要找到使用 etaoin 查询 shadowDom 的等效方法。

这段代码(使用实际元素而不是占位符“some”)描述了我在 etaoin/clojure 中尝试完成的工作。

document.querySelector("some-page").shadowRoot.querySelector("some-list").shadowRoot.querySelector("some-div").shadowRoot.querySelector("[data-test=some-status-button]").click()

如何通过 etaoin 访问/查询影子 dom?https://github.com/igrishaev/etaoin缺少我需要的文档。

描述如何将上述 js 代码插入开发人员控制台并通过 etaoin webdriver 运行它的答案是可以接受的,有关使用 etaoin 将 webdriver 中的虚拟鼠标导航到特定 xy 坐标并单击的文档也可以接受。也可以接受。

标签: clojurewebdrivershadow-domqueryselector

解决方案


阅读有关 Etaoin 文档的更多信息,并找到适合我的解决方案。结合您的驱动程序和元素上的 javascript 调用使用该js-execute函数。.ShadowRoot

(js-execute driver "document
.querySelector(\"element-id\").shadowRoot.querySelector(\"tag-name\").click()")

有关详细信息,请参阅shadowRoot


推荐阅读