如何使用量角器识别离子标签?

How to identify ionic tags using Protractor?

我有一个简单的离子模板,如下所示。在 Protractor 中,我如何编写定位器来定位 Ionic 元素,比如标题和左右按钮。如何检查标题是否为 'My Title'?我无法通过 H1 进行绑定,因为我的模板中应该有很多 H1。

<ion-header-bar align-title="left" class="bar-positive">
    <div class="buttons">
        <button class="button" ng-click="doSomething()">Left Button</button>
    </div>
    <h1 class="title">My Title</h1>
    <div class="buttons">
        <button class="button">Right Button</button>
    </div>
</ion-header-bar>
<ion-content>
    Some content!
</ion-content>
  1. 在你的控制器中,定义

    $scope.someTag = "whatever"

  2. $scope.someTag

  3. 上在控制器中应用您的功能
  4. 在您的DOM(例如您的标题)中,分配:

    title="{{someTag}}"

通过这种方式,您可以控制自己所做的事情!

我会根据标签名称 类 和相对位置找到元素 by xpath

var title = element(by.xpath('//h1[@class="title" and following-sibling::div[@class="buttons"] and preceding-sibling::div[@class="buttons"]'));
var leftButton = title.element('preceding-sibling::div[@class="buttons"]/button');
var rightButton = title.element('following-sibling::div[@class="buttons"]/button');

我能够使用它作为带有文本保存的右侧按钮使其正常工作:

var saveButton = element(by.css('.right-buttons')).element(by.cssContainingText('button', 'Save'));

我猜你可以对左键做同样的事情,例如左键在文本中说:

var backButton = element(by.css('.left-buttons')).element(by.cssContainingText('button', 'back'));