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 方法,protractorfindElements() - 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"]);