在到达要测试的站点之前,我必须先访问登录(非 Angular )页面
var url = 'http://localhost:9999/login?usern=bar';
browser.driver.get(url);
尽管这是一个非 Angular 页面,将 ?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/);
});
});
网站.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
};
任何帮助将不胜感激
最佳答案
您必须关闭同步:
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/);
});
});
不过,请考虑在更好的地方将其关闭,然后在进入主页后再次打开。
关于javascript - Protractor :非 Angular 登录到 Angular 站点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36311983/