[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'));
但是这仅对第一个有效,因为所有的类名都相同。有没有办法为所有三个按钮设置唯一的定位器?
您可以利用element.all
(https://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,依此类推...
您的选择选项应是每个按钮都有唯一的定位器