量角器不是等待angular2加载
量角器版本:5.1.2
节点版本:6.9.0
角版本:2.4.10量角器不是等待angular2加载
OnPrepare
功能我做browser.get('/')
。在此之后,我正在登录it
。
第一个问题是它会引发错误的异步函数不叫。做一个失败的研究后,我加入browser.sleep(500)
那么上面停下来和执行登录it
情况。
之后,我必须点击一个按钮,登陆页面,然后导航到另一个页面,并单击另一个button.Here也失败说没有元素发现的定位。但如果我添加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文件中的代码和exports.config标签: -
browser.ignoreSynchronization = true;
,登录内部 “它” 使用下面的代码: -
browser.waitForAngularEnabled(false);
而在另一个着陆页内使用此代码: -
browser.waitForAngularEnabled(true);
在执行测试之前,量角器不一定等待onPrepare
完成。
但是,您可以选择返回onPrepare
内的promise
,然后量角器将在继续执行之前等待。
查看详情in this question here或corresponding Protractor documentation here。
对于我的情况,我添加了登录步骤(填充用户名和密码,单击登录)到onPrepare函数,该函数也创建承诺,因此触发Protractor测试执行,直到解决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();
}
没有帮助我的兄弟....我仍然无法理解为什么量角器不是你的答案 –
等待屏幕加载或完成一些要求..反正感谢把它简单的话:如果内'onPrepare'没有什么等待,量角器不会等待。由于您没有解决'onPrepare'中的任何承诺,因此无需等待。尝试添加线路浏览器。waitForAngular();''在你的'browser.get('/');'下面并且让我知道,如果那有效的话。 (基本上量角器应该这样做,不加这条线,但有一些具有挑战性的星座,所以它可能会溜走)。 –
也[在这里查看这个相对类似的问题](https://stackoverflow.com/a/46734826/8683679)。 –
你的意思是说,我应该使用'browser.waitForAngularEnabled()'为每个'它'case? –
不,对于每一个同步,你从角页移动到非角页。 – 2017-09-27 07:09:52
我的整个应用程序在角 –