如何解决Selenium - 在 shadow dom 内测试 iframe
我有一个启用了 ViewEncapsulation.ShadowDom 的 angular 应用程序,其中有一个 iframe。 当我尝试编写量角器测试时出现错误:
Failed: unknown error: no element reference returned by script
虽然我能够实际获取网络元素,但我无法使用它执行任何操作。
const root = element(by.css('app-root')).getWebElement();
browser.driver
.executeScript('return arguments[0].shadowRoot',root)
.then((shadowRoot: WebElement) => {
browser.switchTo()
.frame(shadowRoot.findElement(by.css('iframe')))
.then(()=>{
element(by.css('.app-block')).getWebElement().then(el=>{
console.log("EL:",el); //logs element
browser.actions().mouseMove(el).perform(); //throws error
});
});
});
有没有办法正确切换到嵌套在 shadow dom 中的 iframe?
解决方法
您可以使用此插件 query-selector-shadow-dom。在你的 conf.js 文件中添加这个
plugins: [{
package: 'query-selector-shadow-dom/plugins/protractor'
}],
然后现在使用阴影 by.shadowDomCss
切换到 iframe。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。