【发布时间】:2016-01-27 21:30:03
【问题描述】:
我已经搜索了 2 天,但我无法找到解决方案,我希望选择一个下拉列表。当我使用一些 element.all css 定位器单击下拉菜单时,它会单击下拉菜单(下拉菜单打开但显示错误)。所以我尝试使用 linkText 打开下拉菜单(完美打开)。但在那之后,我无法在下拉菜单中选择该选项。 (显示元素不可见)。我也无法通过链接文本选择选项。详情如下
<div class="collapse navbar-collapse">
<ul class="nav navbar-nav navbar-right" style="margin-right:0px">
<li>
<div uib-dropdown="" style="margin-right: 5px;" class="dropdown">
Tenant
<a href="" id="simple-dropdown" uib-dropdown-toggle="" class="dropdown-toggle" aria-haspopup="true" aria-expanded="false">
<span class="breadcrumb ng-binding" style="padding-bottom: 2px; padding-top: 2px;">cust1</span>
</a>
<ul class="uib-dropdown-menu dropdown-menu" role="menu" aria-labelledby="single-button">
<!-- ngRepeat: tenant in tenantList --><li ng-repeat="tenant in tenantList" class="ng-scope">
<a ng-click="selectTenant(0)" href="">
<span ng-show="selectedTenant.Identity == tenant.Identity" class="glyphicon glyphicon-ok"></span>
<span ng-show="selectedTenant.Identity != tenant.Identity" style="margin-left: 17px" class="ng-hide"></span>
<span class="ng-binding">cust1</span>
</a>
</li><!-- end ngRepeat: tenant in tenantList --><li ng-repeat="tenant in tenantList" class="ng-scope">
<a ng-click="selectTenant(1)" href="">
<span ng-show="selectedTenant.Identity == tenant.Identity" class="glyphicon glyphicon-ok ng-hide"></span>
<span ng-show="selectedTenant.Identity != tenant.Identity" style="margin-left: 17px" class=""></span>
<span class="ng-binding">NewTenant1</span>
</a>
</li><!-- end ngRepeat: tenant in tenantList --><li ng-repeat="tenant in tenantList" class="ng-scope">
<a ng-click="selectTenant(2)" href="">
<span ng-show="selectedTenant.Identity == tenant.Identity" class="glyphicon glyphicon-ok ng-hide"></span>
<span ng-show="selectedTenant.Identity != tenant.Identity" style="margin-left: 17px" class=""></span>
<span class="ng-binding">cust2</span>
</a>
</li><!-- end ngRepeat: tenant in tenantList -->
</ul>
</div>
我尝试通过以下方式进行选择,但我无法使其工作。
- 等待元素变得可见。
- 链接文本
- 可供选择的选项。 (通过中继器名称作为选项) 请帮帮我
【问题讨论】:
-
甚至尝试通过查找子元素。 var el = element(by.binding('selectedTenant.ParentOwnerName')).element(by.css('a[ng-click="selectTenant(2)"]')); el.click();
-
您是否尝试单击
anchor元素而不是list元素?如果字母不能以任何方式识别,您也可以使用sendKeys()函数传递字母。谢谢 -
我对量角器只有 2-3 个月大。如果我错了,请纠正我。这是通过.css('[ng-click="selectTenant(2)"]') 来的锚元素吗?如果是,那么我尝试了这个。是的,我也试过 sendkeys。我不知道如何传递字母。请更准确地解释
-
您的网站在公共领域,我们可以访问吗?我不确定为什么您无法单击下拉列表,但是 stackoverflow 中有很多答案显示了如何从下拉列表中选择一个值。他们都没有工作?这里有几个 - stackoverflow.com/questions/19599450/… 或 stackoverflow.com/questions/22895281/… 等等。如果它们都不起作用,请告诉我。谢谢
标签: automation protractor angularjs-e2e