我将量角器与 Browserstack.exe 一起用于 e2e (UI) 测试。
我必须检查授权过程。它是这样的:
- 转到域/#login
- 重定向到 auth0.com 以获得授权(托管 auth0 授权)
- 输入凭据
- 完成身份验证后重定向到我的角度客户端。
我读到要测试单独的登录页面,我们必须使用 browser.ignoreSynchronization = true;
有时它有效,有些则无效。我不明白为什么以及什么取决于此。
运行量角器时出现此错误:预期“ http://localhost:8001/app/#/login ”包含“domen.auth0.com”。
我的代码:
describe('[domain.reports]', function () {
beforeAll(function() {
// it makes protractor not wait for Angular promises
// for testing separate login page.
browser.ignoreSynchronization = true;
});
beforeEach(function () {
browser.wait(browser.get('#/login'), 5000);
expect(browser.getCurrentUrl()).toContain('domain.auth0.com');
});
it('should automatically redirect to /samples when location hash/fragment is empty', function () {
var EC = protractor.ExpectedConditions;
var el = element(by.css('.auth0-lock-submit'));
browser.wait(EC.visibilityOf(el), 10000);
protractor.loginHelpers.loginToPage('test_customer@gmail.com', 'Qazxsw123456');
protractor.waitHelpers.waitForUrlToBeChanged("/samples");
//browser.wait(browser.get('#/samples'), 5000);
expect(browser.getCurrentUrl()).toMatch("/samples");
browser.get('#/api');
expect(browser.getCurrentUrl()).not.toContain("/api");
});
});
它适用于另一个场景......
感谢您提供任何想法的建议!