我正在酱汁实验室用量角器测试一个非棱角分明的页面。 由于退出页面,我的测试经常失败。 注销页面上有广告,但是我尝试设置超时多长时间, 它达到了它并且规范失败了。
我遇到了同样的失败a)& b)在测试期间,我确定我没有达到超时。 有什么想法吗?
我的超时时间:
allScriptsTimeout: 100000,
defaultTimeoutInterval: 110000,
getPageTimeout: 120000,
browser.manage().timeouts().implicitlyWait(10000);
错误讯息:
a) ✗ logout
- Error: Timeout - Async callback was not invoked within timeout specified by jasmine.DEFAULT_TIMEOUT_INTERVAL.
b)
✗ logout
- Failed: Wait timed out after 60096ms
代码:
beforeEach(() => {
browser.manage().timeouts().implicitlyWait(10000);
beforeEach(function(done) { done(); }, 10000);
});
ListPage.logout.click();
browser.wait(EC.stalenessOf(ListPage.logout), 120000);
答案 0 :(得分:0)
你必须把它放在你的配置文件中,用于解决这个问题的非角度应用程序:
onPrepare: function () {
browser.ignoreSynchronization = true;
},
答案 1 :(得分:0)
我不确定这段代码应该做什么,但无论如何你应该知道在每个规范之前调用beforeEach
,即在每个it
函数之前。 / p>
我在网络应用程序中使用Protractor不断轮询超时,迫使我设置browser.ignoreSynchronization = true;
我的建议是:如果你可以避免这样做......请避免它。您至少会花一半时间来调试同步问题。
编辑:由于您正在测试非角度应用,因此您必须使用browser.ignoreSynchronization = true
这意味着您必须自己管理同步,并确保在需要时发送发送到浏览器的每个命令。
在这种情况下,请通过编写类似
的内容来自行管理同步ListPage.logout.click()
.then(function(){
browser.wait(EC.stalenessOf(ListPage.logout), 120000);
});
答案 2 :(得分:0)
(如果我得到ignoreSynchronization = true则回答问题)我在我的配置中得到了这个。规范在本地运行成功(大部分时间),我尝试了很多东西,不同的超时,beforeEach(function(done){ done();},10000);.每次点击的预期条件,但测试仍然失败。最糟糕的是当注销失败时,下一个规范也失败了,如下所示。
[iphone 9.2 OS X 10.10 #31] A Jasmine spec timed out. Resetting the WebDriver Control Flow.
[iphone 9.2 OS X 10.10 #31] ✗ logout
[iphone 9.2 OS X 10.10 #31] - Error: Timeout - Async callback was not invoked within timeout specified by jasmine.DEFAULT_TIMEOUT_INTERVAL.
[iphone 9.2 OS X 10.10 #31] **************************************************
[iphone 9.2 OS X 10.10 #31] * Failures *
[iphone 9.2 OS X 10.10 #31] **************************************************
[iphone 9.2 OS X 10.10 #31]
[iphone 9.2 OS X 10.10 #31] 1) Feedback Test open feedback
[iphone 9.2 OS X 10.10 #31] - Failed: Element does not exist in cache