如何告诉量角器不要等到页面完全加载

时间:2016-06-07 16:05:37

标签: selenium-webdriver jasmine protractor saucelabs gulp-protractor

我正在酱汁实验室用量角器测试一个非棱角分明的页面。 由于退出页面,我的测试经常失败。 注销页面上有广告,但是我尝试设置超时多长时间, 它达到了它并且规范失败了。

我遇到了同样的失败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); 

3 个答案:

答案 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