【问题标题】:Polymer UI element shadow root does not support automation using selenium webdriverPolymer UI 元素阴影根不支持使用 selenium webdriver 的自动化
【发布时间】:2018-11-04 18:58:06
【问题描述】:

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

【问题讨论】:

标签: javascript selenium polymer-2.x


【解决方案1】:

没有硒不支持它。要么您必须使用 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 分钟阅读说明与当前框架或新框架集成的难易程度。

【讨论】:

  • 感谢@SushilG,它正在使用 selenium 中的 javascript 执行器。
猜你喜欢
  • 2017-06-05
  • 2022-01-03
  • 2019-09-09
  • 1970-01-01
  • 2015-04-07
  • 2023-03-19
  • 2016-08-12
  • 2021-05-28
  • 2022-08-19
相关资源
最近更新 更多