我已经搜索了这个问题的答案,但我找不到一个在我的实例中有效的答案。我目前正在尝试测试一些文本是否正确绑定(我可以看到它),但我在测试时无法获得实际文本。下面是一些代码。
<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>
答案 0 :(得分:1)
根据您提供的信息,您只应检索h3
- 元素的文字,因为它不是input
字段。您可以使用getText()
。你的代码就像这样
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;