2016-06-21 24 views
2

我目前使用量角器检查页面上的数据加载。 有时候页面上的内容加载时间太长,所以在这种情况下,我想执行一些其他操作,然后检查它是否再次出现。如何在browser.wait超时执行其他代码?

return browser.wait(protractor.until.elementLocated(dataRow)); 

上面的代码执行所完美,但是,我想是这样的:

return browser.wait(protractor.until.elementLocated(dataRow), 
     button.click(); 
     then check for element's presence again); 

在正确的方向任何建议,将不胜感激。

+0

你需要点击一次按钮?或者,应该以递归方式工作,直到dataRow存在为止?谢谢。 – alecxe

+0

如果数据尚未加载到页面上,该按钮只需点击一次。谢谢 – fuzzii

回答

2

我觉得你可以把额外的代码到browser.wait()的错误回调:

return browser.wait(protractor.until.elementLocated(dataRow)).then(function() {}, function() { 
    button.click(); 
    return browser.wait(protractor.until.elementLocated(dataRow)); 
}); 
+0

谢谢你的回答。这总是会执行.then语句吗?因为如果第一个browser.wait失败,我只想执行该函数。我会测试你的答案,看看结果。 – fuzzii

+0

@fuzzii我在发布后更改了答案。我认为你应该点击并从外部browser.wait()的错误回调函数内部返回。 – alecxe

+0

这似乎导致错误:失败:无法读取未定义的属性'按钮',我认为这是因为此等待已超时,所以此块之后的其他代码仍在继续。 – fuzzii

相关问题