Polymer UI元素shadow root不支持使用selenium webdriver进行自动化

时间:2018-05-25 11:25:53

标签: javascript selenium polymer-2.x

我正面临使用selenium webdriver自动化聚合物ui页面的问题。堵塞启动硒自动化的原因是"影子根"元素 聚合物组分。善意地提出一些例子或想法来克服这个问题。硒是否支持聚合物ui自动化?

1 个答案:

答案 0 :(得分:1)

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

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

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

这将有权访问复合类名称为“ layout horizo​​ntal center”的元素,而不管其阴影根的数量如何。

但这仅在chrome驱动程序中有效,我看到注释“ / deep /”已被弃用。

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

值得花5分钟时间阅读说明,该说明显示了与当前框架或新框架集成的容易程度。