k.v*_*ent 8 protractor e2e-testing
我正在为 Angular 7.x 应用程序运行 E2E 测试。测试在我的本地机器上直接运行。但是当我将它推送到 repo (GitLab) 时,管道失败并抛出以下错误:
用户配置文件 - 检查并更改配置文件 - 失败:元素不可交互(会话信息:chrome=71.0.3578.80)(驱动程序信息:chromedriver=2.45.615279(12b89733300bd268cff3b78fc76cb8f3a7cc44e5)-444e5-Linux4
测试用例:
it('USER PROFILE - Check and change PROFILE', () => {
page.navigateTo();
browser.sleep(1000);
expect(page.getProfileEditTagName()).toMatch('app-edit-profile');
expect(element(by.className('logged-as')).getText()).toBe( testEmail );
browser.actions().mouseMove( element.all( by.id('editIcon-salutation') ).get(0)).click().perform().then(function () {
browser.sleep(4000);
element( by.className('mat-select-arrow') ).click().then(function () {
browser.actions().mouseMove( element.all(by.className('option-value mat-option')).get(0)).click().perform();
browser.sleep(1000);
browser.actions().mouseMove( element.all( by.id('saveButton-salutation') ).get(0)).click().perform();
browser.sleep(1000);
});
});
});
Run Code Online (Sandbox Code Playgroud)
navigateTo()
只是profile.po.ts 中的一个方法:
navigateTo() {
browser.get('/profileComponentUrl');
}
Run Code Online (Sandbox Code Playgroud)
令我困惑的是,我什至无法定位错误或错误的地方是它在本地运行良好。但是一旦我推送到 repo,它就会在那个测试用例中完全失败。请问有什么提示吗?
小智 4
元素不可交互的原因可能是 - 对隐藏或模糊的元素执行操作。
您可以尝试 - 1.在 by.className('mat-select-arrow') ).click() 之后添加睡眠,因为我可以看到您没有在那里添加任何等待。2. 尝试检查您的本地机器和 Jenkins 机器上是否以相同的屏幕分辨率运行测试。(这可能是元素被遮挡的原因)