无法在量角器中找到按钮

问题描述 投票:0回答:1

[Angular]应用程序中有3个按钮,具有以下详细信息:

<button ng-class="btnClass1" class="btn btn-lg tab" ng-click="addCust()">
<b ng-show="btnClass1 === 'btn-primary'" id="notch" class="notch ng-hide"></b>
"Add Customer" </button>


<button ng-class="btnClass2" class="btn btn-lg tab" ng-click="addCust()">
    <b ng-show="btnClass1 === 'btn-primary'" id="notch" class="notch ng-hide"></b>
    "Open Account" </button>

<button ng-class="btnClass3" class="btn btn-lg tab" ng-click="addCust()">
    <b ng-show="btnClass1 === 'btn-primary'" id="notch" class="notch ng-hide"></b>
    "Customer" </button>

我尝试以下查找:var addCustomerButton = element(by.className('btn btn-lg tab'));

但是这仅对第一个有效,因为所有的类名都相同。有没有办法为所有三个按钮设置唯一的定位器?

protractor cucumberjs
1个回答
1
投票

您可以利用element.allhttps://www.protractortest.org/#/api?view=ElementArrayFinder.prototype.all)来返回元素的数组,以便您可以通过元素在数组中的索引来访问该元素(例如addCustomerButton[0]

或者您可以利用nth-child()https://developer.mozilla.org/en-US/docs/Web/CSS/:nth-child)为三个按钮指定三个不同的定位器,并与其中任何一个进行交互。

但是,我不建议使用任何这种方法,因为如果要添加更多的按钮,这几乎不会弄乱一切。尤其是如果要在新按钮之间添加新按钮,例如按钮1和按钮2。然后您的按钮2将成为按钮3,按钮3将成为按钮4,依此类推...

您的选择选项应是每个按钮都有唯一的定位器

© www.soinside.com 2019 - 2024. All rights reserved.