Protractor 在量角器中找不到按钮

Protractor 在量角器中找不到按钮,protractor,cucumberjs,Protractor,Cucumberjs,角度应用程序中有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="btnC

角度应用程序中有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=elementby.className'btn btn lg tab'

但这只适用于第一个类,因为所有类的类名都是相同的。有没有办法为所有三个按钮提供唯一的定位器?

您可以使用element.all,它将返回一个元素数组,以便您可以通过数组中的索引访问元素,例如addCustomerButton[0]

或者,您可以利用第n个子项为三个按钮指定三个不同的定位器,并仅与其中任何一个进行交互

然而,我不建议任何这种方法,因为如果添加更多的按钮,这几乎不会把事情搞砸。特别是如果在按钮1和按钮2之间添加新按钮。然后你的按钮2会变成按钮3,按钮3会变成按钮4,依此类推

您的ToGo选项应该是为每个按钮提供唯一的定位器