测试绑定文本时不接收数据

时间:2017-07-11 14:45:31

标签: angularjs protractor

我已经搜索了这个问题的答案,但我找不到一个在我的实例中有效的答案。我目前正在尝试测试一些文本是否正确绑定(我可以看到它),但我在测试时无法获得实际文本。下面是一些代码。

<h3>Borrowing Potential: {{$ctrl.borrowingPotential.value | currency}} as of 
{{$ctrl.borrowingPotential.timeStamp | date:'MM/dd/yyyy hh:mm:ss a':EST}} EST</h3>

__

fit("should have a borrowing potential calculated", function () {
    var tab = element(by.css('[ng-click="$ctrl.setSelectedTab($ctrl.tabs.summary)"]'));
    tab.click();
    var parent = element(by.tagName("member-summary"));
    var borrowingPotential = parent.element(by.tagName("h3"));
    expect(borrowingPotential.getAttribute("value")).toContain("Some Text");

});

基本上,我单击一个显示名为“member-summary”的自定义组件的选项卡,然后我尝试通过Web驱动程序访问该元素。它是此页面上成员摘要的唯一实例。但是,当我访问parent或borrowingPotential时,getText()返回一个空字符串,getAttribute返回一个null类型。

注意:我还尝试直接访问绑定,但没有结果。这不起作用,因为绑定不被视为父元素(https://github.com/angular/protractor/issues/3147)的子元素。

如何获取该文本,然后测试显示的是否正确?

根据要求,以下是Chrome调试器中的html。如您所见,绑定已被替换为文本。

<h3 class="ng-binding">Borrowing Potential: -$48,939,539.14 as of 01/01/0001 12:00:00 AM EST</h3>

1 个答案:

答案 0 :(得分:1)

根据您提供的信息,您只应检索h3 - 元素的文字,因为它不是input字段。您可以使用getText()。你的代码就像这样

&#13;
&#13;
fit("should have a borrowing potential calculated", function() {
  var tab = element(by.css('[ng-click="$ctrl.setSelectedTab($ctrl.tabs.summary)"]'));
  tab.click();
  var parent = element(by.tagName("member-summary"));
  var borrowingPotential = parent.element(by.tagName("h3"));
  // Replace the `getValue()` with `getText()`
  expect(borrowingPotential.getText()).toContain("Some Text");
});
&#13;
&#13;
&#13;