按顺序对多个文件进行角度测试-等待Protractor与页面同步时出错



从Angular E2E开始,并尝试测试多个文件(按模块划分测试用例(。

量角器.conf.js中的更改

specs: [
"./src/login/login.component.e2e-spec.ts",
"./src/customs-portal/home.component.e2e-spec.ts",
],

这将以相同的顺序运行两个文件的测试用例。

在家庭测试用例文件中,我写了

beforeAll(() => {
homePage= new HomePage();
helperService = new HelperService();
CSS = homePage.CSS;
helperService.navigate("/home");
helperService.skipIntro();
});

我导航到/home,在主页上有跳过按钮,我单击该按钮可以避免页面的介绍阶段。以下是skipIntro功能与的相似之处

async skipIntro(): Promise<any> {
const _skipBtn = await element(by.css(this.CSS.SKIP_INTRO));
console.log("HelperService -> _skipBtn", _skipBtn);
if (_skipBtn) {
_skipBtn.click();
}
}

但它显示错误,并使测试用例失败

it("dummy test always paas", async () => {
expect(true).toEqual(true);
});

这是错误

- Error: Error while waiting for Protractor to sync with the page: "both angularJS testability and angular testability are undefined.  This could be either because this is a non-angular page or because your test involves client-side navigation, which can interfere with Protractor's bootstrapping.  See http://git.io/v4gXM for details"

这是帮助服务。导航

navigate(path: string): promise.Promise<any> {
return browser.get(path);
}

对此有任何帮助,在Angular E2E上没有太多经验。

试试这个,它应该可以

beforeAll(async () => {
homePage= new HomePage();
helperService = new HelperService();
CSS = homePage.CSS;
await helperService.navigate("/home");
await  helperService.skipIntro();
});
async skipIntro(): Promise<any> {
const _skipBtn =await element(by.css(this.CSS.SKIP_INTRO));
console.log("HelperService -> _skipBtn", _skipBtn);
if (_skipBtn) {
await _skipBtn.click();
}
}
async navigate(path: string): promise.Promise<any> {
await return browser.get(path);
}
async skipIntro(): Promise<any> {
const _skipBtn = await element(by.css(this.CSS.SKIP_INTRO));
console.log("HelperService -> _skipBtn", _skipBtn);
if (_skipBtn) {
await _skipBtn.click();
}
}
async navigate(path: string): promise.Promise<any> {
await return browser.get(path);
} 

通过查看错误,我假设测试中的应用程序不是Angular应用程序。Protractor主要用于测试角度应用程序,但要测试non-angular应用程序,您可以进行以下配置更改,您可能不会得到此错误

browser.waitForAngularEnabled(false);

这将禁用在应用程序中搜索角度组件,并执行测试。

看起来像是异步和控制流混合,这似乎是的一个问题

最新更新