目前有一个部分端到端测试,输入用户名/密码并点击“登录”。
它成功地完成了这个过程,但是最终停留在“感谢您已登录”的页面,而不是像通过浏览器登录那样重定向到“帐户门户”或“仪表板”。
我在这个项目中是新手,但我们正在使用OAuth。
主要问题:这是否需要进行http模拟?
更多细节:
spec.js
describe('login page', function() {
browser.driver.get('http://url.path/login');
it('should render login page', function() {
// Checking the current url
var currentUrl = browser.driver.getCurrentUrl();
expect(currentUrl).toMatch('/login');
});
it('should sign in', function() {
// Find page elements
var userNameField = browser.driver.findElement(By.id('username'));
var userPassField = browser.driver.findElement(By.id('password'));
var userLoginBtn = browser.driver.findElement(By.id('loginbtn'));
// Fill input fields
userNameField.sendKeys('test@user.com');
userPassField.sendKeys('1234');
// Ensure fields contain what we've entered
expect(userNameField.getAttribute('value')).toEqual('test@user.com');
expect(userPassField.getAttribute('value')).toEqual('1234');
// Click to sign in - waiting for Angular as it is manually bootstrapped.
userLoginBtn.click().then(function() {
browser.waitForAngular();
expect(browser.driver.getCurrentUrl()).toMatch('/success');
}, 10000);
});
});
如果我快速点击测试窗口,我可以看到它成功到达“成功”页面-但它不会重定向到仪表板(当您通过浏览器手动登录时,它会重定向)。我该如何继续这个测试以保持已登录状态并像用户一样访问仪表板?
// 初次接触项目、Angular和Protractor。
编辑-稍微总结一下:
- 我希望Protractor从/login页面开始测试
- Protractor应查找并填写用户名和密码字段,然后单击登录
- Protractor成功登录,看到/thankyou页面,然后立即重定向到用户的/dashboard页面
- 也许我错过了一个步骤,我们需要在Protractor测试中手动重定向吗?
(当用户通过浏览器手动登录时,他们不会看到/thankyou页面-快速重定向到/dashboard。 Protractor无法到达仪表板页面。)