我有以下渲染的html
<div class="footer text-center">
<p>By signing up, you agree to abc's <b>Terms of Service</b>, <b>Cookie Policy</b>, <b>Privacy Policy and Content Policies.</b></p>
</div>
我正在尝试按照以下方式验证文本是否按预期显示。 但getAttribute(&#39; value&#39;)返回Null,因此测试失败。
element(by.tagName('p')).getAttribute('value').then(function (text) {
expect(text).toBe("By signing up, you agree to abc's Terms of Service, Cookie Policy, Privacy Policy and Content Policies.");
});
答案 0 :(得分:0)
您应该使用 innerHtml 属性。 检查一下:
答案 1 :(得分:0)
您可以使用getText。它也将返回内部标签中的所有文本。
答案 2 :(得分:0)
当您尝试将getText()
格式化为格式良好的字符串时,您确实应该使用getText()
as described in Protractor API。它将删除<b>
- 标记,也将删除双空格。
此外,因为getText()
会返回一个承诺,而expect()
会解析承诺,因此您无需使用then()
。
总体而言,您的代码应如下所示:
expect(element(by.tagName('p')).getText()).toBe("By signing up, you agree to abc's Terms of Service, Cookie Policy, Privacy Policy and Content Policies.");
现在有一些更有价值的信息: