我们正在尝试自动化可公开访问的网站,点击其中一个链接,但测试失败,超时异常而定位的元素如下:
来源:任务: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();
});
};
发现你看到了你的网页的问题的根本原因。 您的网站似乎不断轮询$超时或$ HTTP,量角器将无限期地等待和超时。
我有监控的HTTP流量下方看到,在频繁的时间间隔和量角器您的应用程序投票只是等待。 。结帐下面的屏幕抓取(绿色标记在时间轴上显示的$ HTTP调用- https://ww2.tracfone.com/cgi-bin/tealeaf.pl )
为什么你看到这个错误的更多细节被记录在这里 。 好。 来到这样做的不同的解决方案,有多种变通此。 我刚才讲的简短有关方案,它留给你选择最好的一个。
IgnoreSynchronization:打开此标志- browser.ignoreSynchronization
为假前browser.get()
并继续测试流程,并重新设置标志为true其他页面检查这里
Interval.js :我不是专家,对这个,但你可以探索更多的在这里
您应该使用$间隔任何民调持续(在角1.2rc3介绍)。
用不同的超时配置试试看一段时间后,你的应用程序停止投票
allScriptsTimeout:120000,getPageTimeout:120000,jasmineNodeOpts:{defaultTimeoutInterval:120000}
我的设置根据你张贴的所有项目,本次测试的样本项目似乎工作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();
});
});