在div中的p元素内获取文本

时间:2017-11-14 16:21:48

标签: protractor

我有以下渲染的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.");
}); 

3 个答案:

答案 0 :(得分:0)

您应该使用 innerHtml 属性。 检查一下:

https://www.w3schools.com/jsref/prop_html_innerhtml.asp

答案 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.");

现在有一些更有价值的信息: