量角器定位超时例外AngularJs应用(Protractor Locator Time Out e

2019-09-27 06:48发布

我们正在尝试自动化可公开访问的网站,点击其中一个链接,但测试失败,超时异常而定位的元素如下:

来源:任务:Protractor.waitForAngular() - 定位:通过(链接文本,我的帐号)样品的conf及以下规格的文件。 请求关于如何解决此问题的帮助。

conf.js

exports.config = {
                seleniumAddress: 'http://localhost:4444/wd/hub',
                capabilities: {
                                'browserName': 'chrome'
                },             
                specs: ['test.js']
};

test.js

describe('test', function() {

                it('should navigate', function(done) {
                                browser.get('https://ww2.tracfone.com');
                                element(by.linkText('MY ACCOUNT')).click();
                                done();
                });
};

Answer 1:

发现你看到了你的网页的问题的根本原因。 您的网站似乎不断轮询$超时或$ HTTP,量角器将无限期地等待和超时。

我有监控的HTTP流量下方看到,在频繁的时间间隔和量角器您的应用程序投票只是等待。 。结帐下面的屏幕抓取(绿色标记在时间轴上显示的$ HTTP调用- https://ww2.tracfone.com/cgi-bin/tealeaf.pl )

为什么你看到这个错误的更多细节被记录在这里 。 好。 来到这样做的不同的解决方案,有多种变通此。 我刚才讲的简短有关方案,它留给你选择最好的一个。

  1. IgnoreSynchronization:打开此标志- browser.ignoreSynchronization为假前browser.get()并继续测试流程,并重新设置标志为true其他页面检查这里

  2. Interval.js :我不是专家,对这个,但你可以探索更多的在这里

您应该使用$间隔任何民调持续(在角1.2rc3介绍)。

  1. 用不同的超时配置试试看一段时间后,你的应用程序停止投票

    allScriptsTimeout:120000,getPageTimeout:120000,jasmineNodeOpts:{defaultTimeoutInterval:120000}



Answer 2:

我的设置根据你张贴的所有项目,本次测试的样本项目似乎工作me.I'm不知道为什么您获得的通常是与不是的角度,但设置页面相关的超时browser.ignoreSynchronization = true帮助闯过此错误。

var ec = protractor.ExpectedConditions;
var timeout = 60000;

describe('test', function() {
    it('should navigate', function(done) {

        browser.ignoreSynchronization = true;
        browser.get('https://ww2.tracfone.com')

        var myAccount = element(by.linkText('MY ACCOUNT'));
        browser.wait(ec.visibilityOf(myAccount)).then(function() {
            myAccount.click();
        })
        done();
    });
});


文章来源: Protractor Locator Time Out exception for AngularJs application