如何在量角器中使用非角度登录页面测试 angularjs 应用程序
How to test angularjs application with a nonangular login page in protractor
我正在努力寻找一种方法来测试我的 angularjs 应用程序,该应用程序具有非 angular 登录页面。
应用程序的所有页面都受登录保护,因此无论我测试什么页面,我都需要先登录。
我浏览了互联网上的各种想法,但似乎没有任何效果 - 它只是在使用量角器登录后没有将我重定向到应用程序,而当我手动执行时,一切都很好。
这是我目前拥有的:
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;
但还是没成功。
有人知道我还能尝试什么吗?
在browser.get()
之前设置ignoreSynchronization=true
,点击登录按钮后重置为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
中那样调用函数。我有一些失败的经验开始在 onPrepare
中与浏览器交互
我正在努力寻找一种方法来测试我的 angularjs 应用程序,该应用程序具有非 angular 登录页面。
应用程序的所有页面都受登录保护,因此无论我测试什么页面,我都需要先登录。 我浏览了互联网上的各种想法,但似乎没有任何效果 - 它只是在使用量角器登录后没有将我重定向到应用程序,而当我手动执行时,一切都很好。
这是我目前拥有的:
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;
但还是没成功。
有人知道我还能尝试什么吗?
在browser.get()
之前设置ignoreSynchronization=true
,点击登录按钮后重置为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
中那样调用函数。我有一些失败的经验开始在 onPrepare