繁体   English   中英

量角器:非角度登录到角度站点

[英]Protractor: Non angular login to angular site

在我到达要测试的站点之前,我必须先访问登录(非角度)页面

var url = 'http://localhost:9999/login?usern=bar';
browser.driver.get(url);

尽管这是一个非角度页面,但将?usern=bar传递到 url 服务器会提供 302 的 HTTP CODE,并重定向到页面/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/);
    });
});

不过,请想想更好的地方将其关闭,然后在进入主页后再次打开。

我使用 browser.waitForAngularEnabled(false) 关闭等待角应用程序。 我的应用程序使用 O365 登录。

public async HandleO365Login() {
        await browser.waitForAngularEnabled(false);
        await this.o365usernameTextBox.sendKeys(Constants.USER_EMAIL);
        await this.o365NextButton.click();
    }

您可以在加载 angular 应用程序后打开它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM