当文字包含为

时间:2016-07-20 12:07:22

标签: protractor

使用量角器2我试图从具有换行符的div元素中获取文本。

我跟随HTML



<tr class="abcde">
<td>
<div class="abc">London</div>
</td>
</tr>

<tr class="abcde">
<td>
<div class="abc">
Washington DC
<br/>
</div>
</td>
</tr>
&#13;
&#13;
&#13;

我可以从第二个div获取文本,但第二个div返回空白值。

我使用的代码如下所示:

&#13;
&#13;
element(by.xpath("//div[@class='abc']")).getText().then(function(text){
  ourChoice = text.trim();
});
&#13;
&#13;
&#13;

有人可以建议我如何从第一个div获得文字?

1 个答案:

答案 0 :(得分:0)

两个 div 标签具有相同的类名&#39; abc&#39;,因此当我们使用您的xpath时,它将提供两个元素。在这种情况下,我们需要使用element()。all()并根据需要应用first()或last()方法。并且您可以应用each()方法进行循环。

代码段:

获取第一个元素文字

element.all(by.xpath(".//div[@class='abc']")).first().getText().
            then(function(txt){
                     console.log(txt);
                 });

获取最后一个元素文字

 element.all(by.xpath(".//div[@class='abc']")).last().getText().
            then(function(txt){
                      console.log(txt);
           });

<强>循环

element.all(by.xpath(".//div[@class='abc']")).each(function(ele,index){
                      ele.getText().then(function(txt){
                         console.log(txt);
   });
});