在量角器

时间:2018-04-24 14:14:10

标签: jasmine protractor

我正在尝试访问子元素的text属性,但每次都获取null值。 DOM如下所示

<div ng-repeater='abc'>
    <span class='xyz'>Mango</span>
</div>
<div ng-repeater='abc'>
    <span class='xyz'>Apple</span>
</div>

我试过下面的代码:

   var parent = element(by.repeater('abc'));
    var child = parent.all(by.xpath('//span[@class="xyz"]'));

    for (let index = 0; index < parent.count(); index++) {
      console.log("Value" + child.getText());
    }

我一直将错误视为Error: Timeout - Async callback was not invoked within timeout specified by jasmine.DEFAULT_TIMEOUT_INTERVAL.

我已经尝试将超时时间增加到30秒,页面正常加载但没有同步问题,但仍然出现错误。

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:2)

element.all(by.repeater('abc')).getText().then(function(txts){
   txts.forEach(function(txt){
      console.log(txt);
   })
})

// the `getText()` api will get visible text of all descendants of current element, 
// that's why parent node `div` can get the text on child node `span`