我正在尝试将我对非角度网站的测试转换为异步/等待控制流程。有些测试没问题,但有些测试有问题。我试图登录并等待元素可点击,我尝试通常的构造加载元素:
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();
请帮我申请等条件代码。提前致谢。
await browser.wait(EC.urlIs(browser.baseUrl + url.home), 7000, 'url is not as expected');
这应该工作:
expect(await browser.getCurrentUrl()).toContain(url.home);
我已将常规e2e更改为异步,并且遇到了简单的页面对象,使每个函数都异步并在每次调用此函数时等待。它有效但很复杂; PO是一场噩梦。
尝试browser.waitForAngularEnabled(false);
它将禁用等待,并最终解决您的问题。这对于角度应用来说是不好的做法,应该避免。