在我到达要测试的网站之前,我必须首先访问登录(非角度)页面
var url = 'http://localhost:9999/login?usern=bar';
browser.driver.get(url);
虽然这是一个非角度页面,但是将?usern=bar
传递给url,服务器会将HTTP CODE设置为302,并重定向到页面/new-user
。在new-user
页面内,我必须先单击按钮才能开始测试
但无论我做什么,我总是得到
Error: Timeout - Async callback was not invoked within timeout specified by jasmine.DEFAULT_TIMEOUT_INTERVAL.
我的流程中出现了问题,因为我可以看到new-user
页面,但没有点击该按钮(很长时间后会出现错误)
规范文件:
var Site = require('helper/site');
describe('Main', function {
beforeAll(function () {
return Site.login();
});
it('should show the main page', function () {
epect(browser.getCurrentUrl()).toMatch(/\/main/);
});
});
Site.js:
function login() {
browser.driver.get('http://localhost:9999/login?usern=bar');
browser.driver.wait(function () {
return browser.driver.getCurrentUrl().then(function (url) {
return /\/new-user/.test(url);
});
});
element(by.css('.save')).click();
}
module.exports = {
login: login
};
任何帮助将不胜感激
答案 0 :(得分:1)
您必须关闭同步:
describe('Main', function {
beforeAll(function () {
browser.ignoreSynchronization = true;
return Site.login();
});
it('should show the main page', function () {
browser.ignoreSynchronization = false;
expect(browser.getCurrentUrl()).toMatch(/\/main/);
});
});
但是,想到更好的地方可以关闭它,然后再次进入主页面。
答案 1 :(得分:0)
我使用browser.waitForAngularEnabled(false)关闭等待角度的应用程序。我的应用使用O365登录。
public async HandleO365Login() {
await browser.waitForAngularEnabled(false);
await this.o365usernameTextBox.sendKeys(Constants.USER_EMAIL);
await this.o365NextButton.click();
}
您可以在加载角度应用程序后将其打开。