在量角器中,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/