在量角器中,getInnerHtml()实例上有ElementFinder method可用:

var elm = element(by.id("myid"));
expect(elm.getInnerHtml()).toEqual("test");


我没有看到它记录在API list中。

当使用getInnerHtml()而不是getText()时,在使用硒测试Web应用程序中是否存在现实中的用例?



我也看到selenium 2.53 has deprecated this method


  不建议使用的WebElement#getInnerHtml()WebEleemnt#getOuterHtml()


看来,这就是量角器未在文档中提及它的原因。

最佳答案

getText()获取元素的开始和结束标记之间的文本,而getInnerHtml()获取元素的HTML语法。

让我们举一个HTML示例,并在a上执行这两项操作:

<a><span>link text</span></a>


getInnerHtml


设置或获取描述元素后代的HTML语法

<span>link text</span>



这是DOM解析和序列化规范的一部分。

getText()


设置或获取对象的开始和结束标签之间的文本

link text



说明:如果我们使用的是getText(),它将仅返回准确的文本,即link text,而getInnerHtml()将返回HTML语法,即<span>link text</span>

这基本上取决于要求。


如果要求获取用于HTML语法分析的HTML语法的文本,则应使用getInnerHtml()
如果要求仅获取元素之间的文本,则应使用getText()


但是有一段时间我个人遇到getText()的问题,由于HTML或其他原因导致的设计问题,它不返回元素的文本,因此也可以使用getAttribute('textContent')

在这种情况下,应使用getInnerHtml()来获取文本,但需要对span元素而不是a元素执行此操作。

注意:-getInnerHtml()也可以用作getAttribute("innerHTML")

关于javascript - 什么时候应该使用getInnerHtml()方法?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38726764/

10-17 00:39