【问题标题】:Unable to locate buttons in protractor无法在量角器中找到按钮
【发布时间】:2020-06-14 14:20:52
【问题描述】:

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】:

    您可以使用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,依此类推......

    您的待办事项应该是每个按钮都有唯一的定位器

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-08-22
      • 2018-09-11
      • 2019-06-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-12
      • 1970-01-01
      相关资源
      最近更新 更多