量角器异步/等待非角度

时间:2018-10-02 07:09:17

标签: selenium-webdriver async-await protractor

我正在尝试将针对非角度网站的测试转移到异步/等待控制流中。有些测试可以,但是有些有问题。 我试图登录并等待该元素可单击,我尝试了用于加载该元素的常规构造:

        browser.wait(EC.urlIs(browser.baseUrl + url.home), 7000, 'url is not as expected');

元素相同:

        browser.wait(EC.visibilityOf(dashpage.creds), 7000, 'element card holder is not visible');

但是,此处测试失败并显示通知。

我也尝试过类似的构造:

        expect(await browser.getCurrentUrl()).toContain(url.home);

但是这种期望总是失败的。

这是代码示例:

beforeAll(async function () {
    browser.ignoreSynchronization = true;
    await browser.get(browser.baseUrl);

});
it('Log in as a new user and buy credits from member profile', async function () {
    email = hel.randomEmail();
    console.log(email);
    await homeact.fill_signup_form(par.male_name, email, par.password, par.canada, 0);
    await homeact.signup_submit();
    browser.wait(EC.urlIs(browser.baseUrl + url.home), 7000, 'url is not as expected');
    //expect(await browser.getCurrentUrl()).toContain(url.home);
    await dashact.check_creds(0);
    await dashact.to_cred_popup();
    //check closing pop-up:
    await buycract.close_popup();

请帮我申请等待条件代码。 预先感谢。

2 个答案:

答案 0 :(得分:0)

await browser.wait(EC.urlIs(browser.baseUrl + url.home), 7000, 'url is not as expected');

这应该可以工作:

expect(await browser.getCurrentUrl()).toContain(url.home);

我将常规e2e更改为异步,并遇到了简单页面对象的问题,使每个函数异步并在此函数的每次调用中均处于等待状态。它有效但复杂; PO是一场噩梦。

答案 1 :(得分:0)

尝试browser.waitForAngularEnabled(false);,它将禁用等待功能并最终解决您的问题。对于角度应用而言,这是不好的做法,应该避免。