我正在尝试将针对非角度网站的测试转移到异步/等待控制流中。有些测试可以,但是有些有问题。 我试图登录并等待该元素可单击,我尝试了用于加载该元素的常规构造:
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();
请帮我申请等待条件代码。 预先感谢。
答案 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);
,它将禁用等待功能并最终解决您的问题。对于角度应用而言,这是不好的做法,应该避免。