目前有部分端到端测试,输入用户名/密码并单击“登录”。
它成功完成了这一操作,但在“谢谢您已登录”页面结束,而不是像我通过浏览器登录那样被重定向到“帐户门户”或“仪表板”。\
这个项目是新的,但我们正在使用 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('[email protected] /cdn-cgi/l/email-protection');
userPassField.sendKeys('1234');
// Ensure fields contain what we've entered
expect(userNameField.getAttribute('value')).toEqual('[email protected] /cdn-cgi/l/email-protection');
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);
});
});
如果我快速单击测试窗口,我可以看到它成功到达“成功”页面 - 但它不会重定向到仪表板(当您通过浏览器手动登录时它会重定向)。我如何继续此测试以保持登录状态并像用户一样访问仪表板?
// 项目新功能,角度和量角器。
编辑-总结一下:
- 我想要量角器开始测试/login page
- Protractor 应该找到并填写用户名和密码字段,然后单击“登录”
- Protractor成功登录,可以看到/谢谢页面,然后立即重定向到用户的/仪表板 page
- 也许我错过了一个步骤,我们需要在量角器测试中手动重定向吗?
(当用户通过浏览器手动登录时,他们看不到/谢谢页面 - 这是一个快速重定向到/仪表板。量角器无法到达仪表板页面。
您的帖子缺乏信息,但我会尝试做出假设:
我怀疑您的“谢谢您已登录”页面会在超时后进行 javascript 重定向。
因此,在您单击“登录”后,浏览器会加载“感谢您已登录”页面,并且由于第二个参数.then()
什么也没做,browser.waitForAngular()
失败是因为该页面上没有角度。
你应该尝试使用类似的东西browser.driver.wait()
使用合理的超时来检测 url 更改(此处描述:https://github.com/angular/protractor/issues/610 https://github.com/angular/protractor/issues/610)和触发器browser.waitForAngular()
浏览器访问后/success
page.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)