Protractor 量角器first()正在工作,而get(0)不工作
在量角器中有一个页面对象的指定代码 该代码正在运行:Protractor 量角器first()正在工作,而get(0)不工作,protractor,Protractor,在量角器中有一个页面对象的指定代码 该代码正在运行: var HomePage = function() { this.publishedShows = element.all(by.repeater('show in showsHomePage')); this.getFirstShow = function(){ return this.publishedShows.first(); } }; 这不是: var HomePage = funct
var HomePage = function() {
this.publishedShows = element.all(by.repeater('show in showsHomePage'));
this.getFirstShow = function(){
return this.publishedShows.first();
}
};
这不是:
var HomePage = function() {
this.publishedShows = element.all(by.repeater('show in showsHomePage'));
this.getFirstShow = function(){
return this.publishedShows.get(0);
}
};
我得到这个错误:
索引越界。正在尝试访问索引为0的元素,但只有0个元素与locator by.repeater匹配(“showsHomePage中显示”)
任何人都可以告诉我吗?这不是关于get(0)
vsfirst()
——它们在实现上完全相同。这可能与时间有关,在采取任何行动之前:
var elm = myPageObject.getFirstShow();
var EC = protractor.ExpectedConditions;
browser.wait(EC.presenceOf(elm), 5000);
// do smth with elm
它不是关于get(0)
vsfirst()
——它们在实现方面完全相同。这可能与时间有关,在采取任何行动之前:
var elm = myPageObject.getFirstShow();
var EC = protractor.ExpectedConditions;
browser.wait(EC.presenceOf(elm), 5000);
// do smth with elm
alecxe在等待元素出现方面确实有一个要点,因此您可能希望按照前面提到的那样等待浏览器。waitForAngular() 我所看到的是,如果您将finder解析为一个变量,那么它可能会处于未实现的承诺状态(即使内部已经解析了查询)。需要做的是解决承诺,然后您应该能够获得所需的要素: 因此,从您的代码:
`this.publishedShows = element.all(by.repeater('show in showsHomePage'));`
将仍然是一个承诺,而不是发布展示
当我尝试您的代码时(我有一个稍微不同的中继器),它会返回项目
显然,改变你的期望,你想检查什么,也返回。标记为=>
还要确保如果使用任何track by语句,则应查看by.exactRepeater命令,以便仅在repeater部分上进行精确匹配。
这对我来说很有效,请注意,解析的promise返回一个查找器数组 alecxe确实需要等待元素出现,因此您可能需要像前面提到的那样等待浏览器。waitForAngular() 我所看到的是,如果您将finder解析为一个变量,那么它可能会处于未实现的承诺状态(即使内部已经解析了查询)。需要做的是解决承诺,然后您应该能够获得所需的要素: 因此,从您的代码:
`this.publishedShows = element.all(by.repeater('show in showsHomePage'));`
将仍然是一个承诺,而不是发布展示
当我尝试您的代码时(我有一个稍微不同的中继器),它会返回项目
显然,改变你的期望,你想检查什么,也返回。标记为=>
还要确保如果使用任何track by语句,则应查看by.exactRepeater命令,以便仅在repeater部分上进行精确匹配。
这对我来说很有效,请注意,解析的promise返回一个查找器数组 非常感谢。但是量角器不应该在继续测试之前等待任何角度元素吗?@MathieuBergeron理论上是的,但在实践中,有些情况下你必须在测试中进行这些等待。谢谢。我尝试了这个解决方案,但仍然不起作用。同样的错误。还有别的想法吗?非常感谢。但是量角器不应该在继续测试之前等待任何角度元素吗?@MathieuBergeron理论上是的,但在实践中,有些情况下你必须在测试中进行这些等待。谢谢。我尝试了这个解决方案,但仍然不起作用。同样的错误。还有别的想法吗?