clojure - 如何在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 坐标并单击的文档也可以接受。也可以接受。
解决方案
阅读有关 Etaoin 文档的更多信息,并找到适合我的解决方案。结合您的驱动程序和元素上的 javascript 调用使用该js-execute
函数。.ShadowRoot
(js-execute driver "document
.querySelector(\"element-id\").shadowRoot.querySelector(\"tag-name\").click()")
有关详细信息,请参阅shadowRoot。
推荐阅读
- c - 在 FSEvent 回调中访问应用程序委托函数
- javascript - 未捕获的类型错误:无法读取 null 的属性“每个”
- python - 销售额的前 80%
- android - 使用自动填充框架填充 Android WebView 中的输入?
- python - python脚本排除csv单元格数据的特定字段
- ios - 公历objective-c中错误的Year和weekOfYear
- objective-c - macOS,“触摸” OneDrive 文件夹会强制它重新同步
- java - java8中使用volatile实现Acquire/Release模型
- python-3.x - GetMyeBaySelling API 不会返回未售出的商品,即使它们存在
- javascript - 如何在电子表格中对 100 多张纸进行排序?