javascript - Protractor :非 Angular 登录到 Angular 站点

标签 javascript angularjs protractor angularjs-e2e

在到达要测试的站点之前,我必须先访问登录(非 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/

相关文章:

javascript - 设置隐藏表单 "value"不支持 jQuery

javascript - 名称错误 : name "something" is not defined - Web App using Angular JS and Python

javascript - 如何从临时元素中获取文本

javascript - 分隔字符串中的整数和文本

javascript - ng-repeat 根据数据显示内容

javascript - 如果camera.position ===controls.target,为什么 Three.js 轨迹球控件会卡住?

javascript - Angularjs - 功能不起作用

AngularJs http请求优先级和http拦截器

javascript - Protractor 元件不可见

javascript - 如何在 for 循环中处理 Protractor promise ?