<div ng-if="domainList.length>1" class="form-group ng-scope">
<div class="col-sm-3">
<label translate="ZillaMain.Authentication" class="ng-scope">Authentication</label>
</div>
<div class="col-sm-9">
<label uib-dropdown="" keyboard-nav="true" on-toggle="toggled(open)" class="dropdown">
<a href="" tabindex="0" aria-label="" uib-dropdown-toggle="" class="dropdown-toggle" aria-haspopup="true" aria-expanded="false">
<!-- ngIf: authentication_domain -->
<!-- ngIf: !authentication_domain --><h3 ng-if="!authentication_domain" class="ng-scope">
<span translate="ZillaMain.Select" class="ng-scope">Select</span>
<i class="icon angle-down-icon"></i>
</h3><!-- end ngIf: !authentication_domain -->
</a>
------
------
------
通过上面提到的代码,我试图了解下拉列表:
this.AuthDD = element(by.css('[on-toggle="toggled(open)"]'));
AuthDD.click();
但这并没有点击下拉菜单,我的测试也没有失败......我不确定它有什么问题。
我还尝试通过以下方式更改定位器:element(by.css('a.dropdown-toggle'));
或element(by.css('[translate="ZillaMain.Select"]'));
但它不会在下拉列表中显示。
量角器中有没有可用的方法来点击下拉列表?
答案 0 :(得分:1)
我会改进您定位下拉菜单的方式(我认为您的定位器一般来说太广泛 - 在您的网页上下文中可能不会太广泛,但我没有那个可以使用)和点a
元素的定位器使用适当的等待条件强制执行可靠性:
var authDropdown = element(by.xpath("//label[. = 'Authentication']/following::label[@class = 'dropdown']/a"));
var EC = protractor.ExpectedConditions;
browser.wait(EC.elementToBeClickable(authDropdown), 5000);
authDropdown.click();
我们正在使用这种XPath表达式,因为我们不仅要定位任何下拉切换链接,而是定位在“身份验证”标签之后。
答案 1 :(得分:0)
我通过进行以下更改来实现这一目标:
this.AuthDD = element(by.css('i.angle-down-icon'));
AuthDD.click();