Jasmine 在量角器中访问子元素

Jasmine 在量角器中访问子元素,jasmine,protractor,Jasmine,Protractor,我试图访问子元素的文本属性,但每次都得到空值。DOM如下所示 <div ng-repeater='abc'> <span class='xyz'>Mango</span> </div> <div ng-repeater='abc'> <span class='xyz'>Apple</span> </div> 芒果 苹果 我尝试了以下代码: var parent = elem

我试图访问子元素的文本属性,但每次都得到空值。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());
    }
var parent=element(by.repeater('abc');
var child=parent.all(by.xpath('//span[@class=“xyz”]');
for(让index=0;index
一直以来,我都以
错误:超时-在jasmine指定的超时时间内未调用异步回调。默认超时时间间隔。

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


任何帮助都将不胜感激。

当您可以通过一个xpath(父元素和子元素没有单独的元素)访问父元素时,您希望通过父元素访问它有什么具体原因吗@aaryahareendranat没有具体原因我甚至直接尝试使用元素。all(子元素定位器)但问题是,由于继续异步问题,我在控制台中没有得到任何输出。如果您能帮助我解决这个问题,我可能会在控制台中看到一些输出。当您可以通过一个xpath(父元素和子元素没有单独的元素)访问父元素时,您希望通过父元素访问它有什么具体原因吗@AaryaHareendranath没有具体原因,我甚至没有直接尝试使用element.all(子元素定位器)但问题是,由于继续异步问题,我在控制台中没有得到任何输出。如果你能帮我解决这个问题,也许我能在我的控制台上看到一些输出。它成功了。请帮助我理解代码,因为我无法理解父元素的文本为何能够获取?@sandepraulo
.count()
返回一个承诺,因此您不能在循环中直接使用它。它起作用了。请帮助我理解代码,因为我无法理解父元素的文本为何能够获取?@sandepraulo
.count()
返回一个承诺,因此不能直接在循环中使用它
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`