javascript - 测试 Angularjs 应用程序-如何获取具有 ng-repeat 属性的对象中的文本

标签 javascript angularjs protractor

下面是 AngularJS 代码,我需要使用 ng Repeater 定位器并在 ng 类绑定(bind)中获取值“Number: 12345”。不使用 xpath

<tr class="auto-row ng-scope" ng-class="{success : row1Checked}" ng-repeat="aut in aut">
  <td style="padding-top: 0px; padding-bottom: 0px;" colspan="2">
    <div class="row">
      <div class="col-xs-12">
        <div class="checkbox">
          <label>
            <input class="ng-pristine " id="row1" type="checkbox" ng-model="row1Checked"><span class="ng-binding" id="mq-auto">Car Number</span><br>
            <span id="mq-auto" style="color: rgb(168, 168, 168); padding-left: 0px;"><small class="ng-binding">Number: 12345</small></span>
          </label>
        </div>      
      </div>
    </div>
  </td>
</tr>

下面是我使用的测试代码

var aut = element.all(by.repeater('aut in aut'));
var text = aut.get(0).getText();

最佳答案

var aut = element.all(by.repeater('aut in aut')); 将引用转发器中的每个 tr 元素,但您需要获取包含所需数字的内部元素。如果您需要对每一行执行此操作,请使用 map() :

var aut = element.all(by.repeater('aut in aut'));
var numbers = aut.map(function (row) {
    return row.element(by.id("mq-auto")).getText();
});

expect(numbers).toEqual(["Number: 12345", "Number: 1231234", ... ]);

关于javascript - 测试 Angularjs 应用程序-如何获取具有 ng-repeat 属性的对象中的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35724878/

相关文章:

javascript - 如何将带有数组的表单值传递给 Angular Controller

javascript - Electron webContents.send 并不总是有效

javascript - 如何在特定日期使 div 过期?

javascript - 了解 Protractor 和 WebDriverJS 控制流

selenium-webdriver - 如何在一个命令中运行 selenium 服务器和 Protractor 。

javascript - AngularJS 从 postdata 中删除数据

javascript - 通过下拉菜单在数组之间切换需要相当多的时间。我该如何减少它? Angularjs、IvhTreeview

javascript - HTML5 输入模式中的正则表达式无效

html - 保存时创建发光效果

javascript - sendKeys 和 click() 不工作。无法获取元素,我正在使用 Protractor javascript 代码