首页 > 解决方案 > Polymer UI 元素阴影根不支持使用 selenium webdriver 的自动化

问题描述

我正面临使用 selenium webdriver 自动化聚合物 ui 页面的问题。阻止硒自动化启动的原因是聚合物成分中的“影子根”元素。请提出一些例子或想法来解决这个问题。selenium 是否支持聚合物 ui 自动化?

标签: javascriptseleniumpolymer-2.x

解决方案


没有硒不支持它。要么您必须使用 documant.querySelector(...).shadowRoot 在 selenium 中使用 javascript 执行器,要么使用“/deep/”组合器。最好的是“/deep/combinator”,因为当您处理多级影子 DOM 时,querySelector 很烦人。

我能够通过以下方式访问所有阴影根元素

driver.find_elements_by_css_selector('body/deep/.layout.horizo​​ntal.center')

这将可以访问具有复合类名称“布局水平中心”的元素,而不管它具有多少阴影根。

但这仅适用于 chrome 驱动程序,我看到注释“/deep/”是一种已弃用的方法。

2019 年 2 月 13 日编辑 您可以使用此项目https://github.com/sukgu/shadow-automation-selenium。最初为 ruby​​ Watir 框架开发并成功运行,但您可以将其用于 selenium webdriver 现有框架或任何支持调用 javascript 方法的现有 webdriver。它还将缩短您的测试用例开发时间和维护时间。它使您的代码更具可读性和排序,这将有助于您在调试时间。

值得花 5 分钟阅读说明与当前框架或新框架集成是多么容易的说明。


推荐阅读