![](/img/trans.png)
[英]protractor angular2 Timed out waiting for asynchronous Angular tasks to finish
[英]Protractor not waiting for angular2 to load
量角器版本:5.1.2
节点版本:6.9.0
角度版本:2.4.10
OnPrepare
函数我正在做browser.get('/')
。 在此之后我做的一个登录it
。
第一个问题是由于未调用异步函数而引发错误。 做一个失败的研究后,我加入browser.sleep(500)
那么上面停下来来执行登录it
的情况。
之后,我必须单击登录页面上的按钮,然后导航到另一个页面并单击另一个按钮。这里也失败了,说找不到定位器的元素 。但是如果我添加browser.waitForAngular()
或browser.sleep()
,然后它开始工作。我无法每次都明确添加。 而且,当我使用量角器(版本:1.3)时,它从未发生过。
因此,我认为问题是量角器没有等待角度同步。
任何解决方案表示赞赏。
量角器配置文件
exports.config = {
directConnect: true,
useAllAngular2AppRoots: true,
specs: ['./**/*.spec.js'],
baseUrl: 'http://10.209.1.38:9090',
framework: 'jasmine2',
capabilites: {
'browserName': 'chrome'
},
jasmineNodeOpts: {
showColors: true,
defaultTimeoutInterval: 60000
},
onPrepare: function () {
browser.driver.manage().window().maximize();
browser.get('/');
browser.sleep(500);
}
};
尝试在conf.js文件和export.config标记内的以下代码:-
browser.ignoreSynchronization = true;
并在登录名“ it”中使用以下代码:-
browser.waitForAngularEnabled(false);
在另一个目标网页中使用以下代码:
browser.waitForAngularEnabled(true);
在执行测试之前,量角器不必等待onPrepare
完全完成。
但是,您可以选择在onPrepare
内返回一个promise
,然后Protractor将在继续执行之前等待它。
在此处查看此问题的详细信息,或在此处查看 相应的量角器文档 。
就我而言,我在onPrepare函数中添加了登录步骤(填写用户名和密码,单击Login),该函数还创建了Promise,因此触发了量角器测试执行,直到onPrepare-Promises被解决为止。
onPrepare: function () {
var login_page = require('../page/login_page.js');
browser.driver.manage().window().maximize();
browser.get('/');
login_page.enterUserName('user');
login_page.enterPassword('password');
login_page.clickLogin();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.