无法确定量角器中ShadowRoot内部的按钮。
我尝试如下使用deepCss
this.startNowButton = element(by.deepCss('button[class="apply-now"]'));
但是我得到
NoSuchElementError: No element found using locator: By(css selector, * /deep/ button[class="apply-now"])
这是识别ShadowRoot for Protractor中元素的正确方法吗?谢谢
我的HTML页面类似于以下内容
<div id="modal">
<div class="push-wrap">
<header id ="site-header">
<hmy-cms-header class="hydrated">
#shadow-root (open)
<header>
<div class=notification-banner> ... </div>
<div class="ca">
<button class="apply-now">"Apply"<span>now</span>
答案 0 :(得分:0)
尝试以下定位器选项
1. const ele = element(by.css(div.ca>button.apply-now));
2. const ele = element(by.buttonText('Apply'));
如果正常点击不适合您,请尝试使用以下执行程序来点击按钮
await browser.executeScript("arguments[0].click()", ele);
答案 1 :(得分:0)
deepcss定位器存在问题,无法正常工作,但可以在影子DOM中查找元素。请参考以下链接以找到其他阴影dom元素的方法。
答案 2 :(得分:0)
拉取请求https://github.com/angular/protractor/pull/4786尚未合并。我已经实施了建议的解决方法(https://github.com/angular/protractor/issues/4367),然后它起作用了。