Selenium 使用量角器获取元素的所有内部文本
Selenium get all inner text of an element with Protractor
<div class="test"> <span>
<div>TEXT </div>
</span>
<div>
<ul>
<li> <span>Other text</span>
TEST1</li>
<li>TEST2</li>
</ul>
</div>
</div>
如何通过测试 class 获取 div 的所有内部文本?理想情况下,我想要一个字符串数组,例如:["TEXT","Other text","TEST1","TEST2"].
尝试这样的事情:
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);
}
}
您不需要直接使用 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"]);
<div class="test"> <span>
<div>TEXT </div>
</span>
<div>
<ul>
<li> <span>Other text</span>
TEST1</li>
<li>TEST2</li>
</ul>
</div>
</div>
如何通过测试 class 获取 div 的所有内部文本?理想情况下,我想要一个字符串数组,例如:["TEXT","Other text","TEST1","TEST2"].
尝试这样的事情:
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);
}
}
您不需要直接使用 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"]);