使用量角器在 Shadow-root 中定位元素
Posted
技术标签:
【中文标题】使用量角器在 Shadow-root 中定位元素【英文标题】:Locate elements inside Shadow-root using Protractor 【发布时间】:2019-06-26 22:37:33 【问题描述】:我的应用程序的大部分元素都在 shadow-root(open) 下。我需要使用 Protractor 框架使它们自动化。 deepCSS 没有成功。请帮助我自动化这些元素 - 主要是点击。
我必须使用量角器自动化框架单击 shadow-root 元素。我尝试了 deepCSS、xpath 等,但没有任何效果。
var spanElem = element.all(by.deepCss('.heading'));
spanElem.click()
//browser.actions().mouseMove(spanElem).click().perform();
【问题讨论】:
首先:你得到的错误是什么?第二:你能提供页面的html源代码吗?最后但并非最不重要的一点:spanElem
是 ElementArrayFinder
- 你不能对其执行 click
方法。请参阅参考资料(仅适用于ElementFincer
):protractortest.org/#/…
【参考方案1】:
类似问题:
deepCss is failing to identify an element inside the shadow root in Protractor Protractor: Unable select input element inside a shadow DOM (Polymer) using by.deepCss('input')Protractor 似乎还没有很好地支持 Shadow DOM。第二个问题有一个指向此问题的答案https://github.com/angular/protractor/issues/4367 和添加自定义定位器by.addLocator('css_sr', (cssSelector: string, opt_parentElement, ....
的解决方法。我确认这也适用于我的情况。
【讨论】:
以上是关于使用量角器在 Shadow-root 中定位元素的主要内容,如果未能解决你的问题,请参考以下文章
java+selenium,请问该如何定位#shadow-root里面的元素?