Protractor 在量角器中等待http请求完成
我试图等待微调器消失,然后等待我的步骤执行,但没有任何东西对我起作用 browser.wait(函数(){ 返回此.spinner.isDisplayed().then(函数(结果){ return!result;});},20000) 我甚至还试过 browser.wait(函数(){ return!browser.isElementPresent(this.spinner);},20000) 即使使用下面的方法 浏览器睡眠(1000) this.spinner.isPresent().then(函数(结果){ 如果(结果==真){ var EC=量角器。预期条件 wait(EC.invisibilityOf(this.spinner),10000);}) 那么唯一有效的就是 浏览。睡眠(10000)Protractor 在量角器中等待http请求完成,protractor,jasmine2.0,Protractor,Jasmine2.0,我试图等待微调器消失,然后等待我的步骤执行,但没有任何东西对我起作用 browser.wait(函数(){ 返回此.spinner.isDisplayed().then(函数(结果){ return!result;});},20000) 我甚至还试过 browser.wait(函数(){ return!browser.isElementPresent(this.spinner);},20000) 即使使用下面的方法 浏览器睡眠(1000) this.spinner.isPresent().the
我不想在代码中使用睡眠。有人能帮助我如何等待完整的HTTP请求完成,然后用测试< P>处理,因为根据当前条件返回true / false,应该考虑使用预期条件。 因此,您的测试用例将成为:
browser.wait(EC.invisibilityOf(this.spinner),20000).then(function(){
...continue test, spinner gone
});
更新
为了使用done
,通常需要将此cb传递到it()
函数中。这意味着您的测试可能看起来像
describe("example describe",function(){
it("should be an example only", function(done){
request.get("www.google.com",function(res){
//done with async request, now call done
done();
})
})
});
由于您的整个代码没有发布在此处,因此您应该有类似的内容:
it("should wait for spinner to go bye-bye",function(done){
browser.wait(EC.invisibilityOf(this.spinner),20000).then(function(){
done()
});
});
你能提供这是什么吗?旋转器?当你说它失败了,那是什么意思?您是否收到任何错误?this.spinner是微调器的xpath,“element(by.xpath('//div[contains(@class=“spinner”)]”),问题是如果微调器在时间过去之前没有显示,那么我们会收到错误消息,说找不到元素。在您的回调中(即
。然后)您正在调用完成()
是否标记异步完成?否。我不知道是否已完成()您能帮助我吗?我也会尝试。有关详细信息,请参阅更新