量角器,登录到asp,net MVC登录页面,等待默认页面,然后重定向到angular页面并做测试…
Protractor, login to asp,net MVC login page, wait for default page then , redirect to angular page and do tests....how?
我正在尝试在我的MVC项目上实现量角器测试,我们正在慢慢转换到Angular
我在MVC登录页面上登录,输入登录名和密码,点击登录,然后我需要等待登录通过几个页面,并到达默认屏幕。
然后我需要重定向到我的一个Angular页面,并运行一个简单的测试(button = enabled)。
我认为这是我需要做的,如果我是正确的,我在等待几个重定向结束在默认页面失败。在整个登录过程完成之前,我正在重定向到我的页面。
我有:
// spec.js
//ptor = protractor.getInstance();
describe('ScoutAngular Protractor Tests', function () {
beforeEach(function () {
browser.ignoreSynchronization = true;
browser.get('http://localhost/Scout3G/Account/LogOn');
browser.driver.findElement(by.id('UserName')).sendKeys('oster.robert');
browser.driver.findElement(by.id('Password')).sendKeys('H0gw1ld!');
});
it('should login and goto the angular page', function () {
var submit = browser.driver.findElement(protractor.By.tagName('input'));
browser.ignoreSynchronization = false;
submit.click().then
(
function ()
{
console.log("===================== 1");
//<<<<<--------I think i need to wait for login to finish several page redirects here
browser.get('http://localhost/Scout3G/Maintenance/TestAngularEWB')
.then(function () {
browser.driver.sleep(1);
browser.waitForAngular();
console.log("===================== about to expect");
element(by.Css("button").isEnabled());
}
);
}
);
console.log("===================== 4");
});
});
当我得到我的TestAngularEWB页面,我得到一个用户没有登录错误…
我怎么能让它等待默认页面,重定向到TestAngulareEWB之前?
我是否犯了其他菜鸟量角器错误?
如果您知道重定向链的结束URL,您可以使用browser.wait()
等待当前URL等于预期的URL:
var urlChanged = function(expectedUrl) {
return function () {
return browser.getCurrentUrl().then(function(actualUrl) {
return expectedUrl === actualUrl;
});
};
};
browser.wait(urlChanged("http://url.to/wait/for"), 5000);
it('should login and goto the angular page', function () {
browser.ignoreSynchronization = true;
element(by.tagName('input')).click();
browser.wait(protractor.until.elementLocated(by.partialLinkText('Hello, non-angular!'))) //wait until user is redirected to non-angular page
browser.get('http://localhost/Scout3G/Maintenance/TestAngularEWB');
browser.wait(protractor.until.elementLocated(by.partialLinkText('Hello, angular'))) //wait until user is redirected to angular page
browser.ignoreSynchronization = false;
});
相关文章:
- Angular 2中登录页上的动态后退链接
- 让typescript与facebook登录为Angular 2项目工作
- 类型错误:布尔值不是 Angular 中登录函数的函数
- 如何在 Angular 中将锚标记与模态链接,以便用户登录
- 如何使用已经存在的 REST API 后端在 Angular 应用程序中实现登录系统
- 访问谷歌登录函数 Angular 2 中的构造函数参数
- 用于登录/注册Angular应用程序的模式/对话框
- 将登录验证模块与现有的Angular JS应用程序集成
- 如果用户尚未登录Angular JS,请重定向至登录页面
- 使用帐户登录ui angular dons't刷新$account.currentUser
- 防止Angular网站上未经授权的用户在重定向到登录之前看到网站的最佳方式
- FB 登录 API 的 checkLoginState 在 Angular Controller 中给出未定义
- 使用 Angular JS 登录,$http请求不起作用
- 如何在有人使用令牌身份验证登录之前允许多个 URL,Angular
- ASP.NET MVC&Angular:会话到期后,Angular Factory返回登录页面的HTML,而不是
- 如何在外部网站上创建对angular应用程序的登录
- angular$http发布带有标题的登录
- Angular/Express:重定向到登录后访问的最后一个页面
- 如果用户想访问特定的页面,需要在angular流星中进行登录验证,如何重定向到404页面
- Firebase简单登录+Angular-每个用户都有自己的数据