量角器版本:5.1.2
节点版本:6.9.0
角度版本:2.4.10
OnPrepare
我正在做的功能browser.get('/')
。在此之后我正在it
进行登录
第一个问题是它抛出错误,因为没有调用异步函数。在进行了一次失败的研究后,我添加了browser.sleep(500)
,然后上面停止并执行了登录it
案例。
之后我必须单击登录页面上的按钮,然后导航到另一个页面并单击另一个按钮。这也说明找不到定位器的元素。但是如果我添加{ {1}}或browser.waitForAngular()
,然后它开始工作。我不能每次都明确地添加它。此外,当我使用量角器(版本:1.3)时,它从未发生过。
所以我认为问题是量角器不是在等待角度同步 任何解决方案都表示赞赏。
量角器配置文件
browser.sleep()
答案 0 :(得分:0)
在conf.js文件和exports.config标记内尝试以下代码: -
browser.ignoreSynchronization = true;
在登录名“it”中使用以下代码: -
browser.waitForAngularEnabled(false);
在其他着陆页内使用此代码: -
browser.waitForAngularEnabled(true);
答案 1 :(得分:0)
在执行测试之前,量角器不一定等待onPrepare
完全完成。
但是,您可以选择在promise
内返回onPrepare
,然后Protractor会等待继续执行。
查看详情in this question here或corresponding Protractor documentation here。
对于我的情况,我在onPrepare函数中添加了Login-Steps(填充用户名和密码,单击Login),该函数也创建了promises,因此触发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();
}