<div class="test"> <span>
<div>TEXT </div>
</span>
<div>
<ul>
<li> <span>Other text</span>
TEST1</li>
<li>TEST2</li>
</ul>
</div>
</div>
如何通过测试类获取div的所有内部文本?理想情况下,我希望有一个字符串数组,例如:[&#34; TEXT&#34;,&#34;其他文字&#34;,&#34; TEST1&#34;,&#34; TEST2&#34 ;。]
答案 0 :(得分:3)
您不需要直接使用webdriver方法,protractor
在findElements()
- element.all()
周围有一个方便的抽象。 map()
将有助于将一个承诺解析为一系列文本:
var texts = element.all(by.xpath("//div[@class='test']//*")).map(function (elm) {
return elm.getText();
});
expect(texts).toEqual(["TEXT", "Other text", "TEST1", "TEST2"]);
答案 1 :(得分:0)
尝试这样的事情:
List<WebElement> list = driver.findElements(By.xpath("//div[@class='test']"));
for(WebElement element: list){
//print text if text not empty
String text = element.getText();
if(!text.isEmpty){
S.O.P("Result :"+text);
}
}