我正在努力寻找一种方法来测试我的angularjs应用程序,该应用程序具有非角度登录页面。
所有应用程序的页面都受登录保护,因此无论我测试哪个页面,我都需要先登录。 我在互联网上查看了各种各样的想法,似乎没有任何工作 - 它只是在用量角器登录后不会将我重定向到应用程序,而当我手动操作时,一切都很好。
这就是我现在所拥有的:
onPrepare: function() {
browser.driver.get('http://localhost:9000/app);
browser.driver.findElement(by.id('userName')).sendKeys('admin');
browser.driver.findElement(by.id('password')).sendKeys('pass123');
browser.driver.findElement(by.id('loginBtn')).click();
return browser.driver.wait(function() {
return browser.driver.getCurrentUrl().then(function(url) {
return /home/.test(url);
});
}, 10000);
我也试过设置browser.ignoreSynchronization = true;
,但仍然无处可去。
有人知道我还能尝试什么吗?
答案 0 :(得分:1)
在found face at...
BoundingBox: (0.49861112236976624%)
BoundingBox: (0.2796874940395355%)
BoundingBox: (0.43611112236976624%)
BoundingBox: (0.27656251192092896%)
found face at...
BoundingBox: (0.49861112236976624%)
BoundingBox: (0.2796874940395355%)
BoundingBox: (0.43611112236976624%)
BoundingBox: (0.27656251192092896%)
之前设置ignoreSynchronization=true
,然后在点击登录按钮后重置为browser.get()
。
false
如果上面的代码没有解决您的问题,请尝试移动上面的代码以登录到函数中,不要在onPrepare: function() {
browser.ignoreSynchronization = true;
browser.driver.get('http://localhost:9000/app);
browser.driver.findElement(by.id('userName')).sendKeys('admin');
browser.driver.findElement(by.id('password')).sendKeys('pass123');
browser.driver.findElement(by.id('loginBtn')).click();
browser.ignoreSynchronization = false;
return browser.driver.wait(function() {
return browser.driver.getCurrentUrl().then(function(url) {
return /home/.test(url);
});
}, 10000);
中调用该函数,调用onPrepare
中的函数。我有一些失败经验开始与beforeAll