Selenium使用Protractor

时间:2015-07-29 07:11:14

标签: javascript angularjs selenium selenium-webdriver protractor

<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 ;。]

2 个答案:

答案 0 :(得分:3)

您不需要直接使用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"]);

答案 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);
    }
 }