【发布时间】:2018-11-04 18:58:06
【问题描述】:
我遇到了使用 selenium webdriver 自动化聚合物 ui 页面的问题。阻止启动硒自动化的原因是“影子根”元素 聚合物组分。请提出一些例子或想法来解决这个问题。 selenium 是否支持聚合物 ui 自动化?
【问题讨论】:
-
@Anbuvel 你的代码请试用
标签: javascript selenium polymer-2.x
我遇到了使用 selenium webdriver 自动化聚合物 ui 页面的问题。阻止启动硒自动化的原因是“影子根”元素 聚合物组分。请提出一些例子或想法来解决这个问题。 selenium 是否支持聚合物 ui 自动化?
【问题讨论】:
标签: javascript selenium polymer-2.x
没有硒不支持它。要么您必须使用 documant.querySelector(...).shadowRoot 在 selenium 中使用 javascript 执行器,要么使用“/deep/”组合器。 最好的是“/deep/combinator”,因为当您处理多级阴影 DOM 时,querySelector 很烦人。
我能够通过
访问所有阴影根元素driver.find_elements_by_css_selector('body/deep/.layout.horizontal.center')
这将可以访问具有复合类名称“布局水平中心”的元素,而不管它有多少阴影根。
但这仅适用于 chrome 驱动程序,我看到注释“/deep/”是一种已弃用的方法。
于 2019 年 2 月 13 日编辑 你可以使用这个项目https://github.com/sukgu/shadow-automation-selenium。最初为 ruby Watir 框架开发并成功运行,但您可以将其用于 selenium webdriver 现有框架或任何支持调用 javascript 方法的现有 webdriver。它还将缩短您的测试用例开发时间和维护时间。它使您的代码更具可读性和排序,这将有助于您在调试时。
值得花 5 分钟阅读说明与当前框架或新框架集成的难易程度。
【讨论】: