我正在编写一些e2e测试,在填写表单并尝试在我制作的自定义选择下拉组件中选择项目时,我被迫使用browser.sleep(...)
让我的测试工作,如果我不使用它然后测试失败。为什么会这样?
这是工作测试:
describe('...', () => {
it(`...`, () => {
page.navigateTo('/...').then(() => {
element(by.tagName('single-select-foo')).element(by.tagName('button')).click().then(() => {
element(by.tagName('single-select-foo')).all(by.css('.select-menu-item')).first().click();
});
browser.sleep(2000);
element(by.tagName('single-select-bar')).element(by.tagName('button')).click().then(() => {
element(by.tagName('single-select-bar')).all(by.css('.select-menu-item')).first().click();
});
});
});
});
这是失败的测试(已移除browser.slepe(2000)
行:
describe('...', () => {
it(`...`, () => {
page.navigateTo('/...').then(() => {
element(by.tagName('single-select-foo')).element(by.tagName('button')).click().then(() => {
element(by.tagName('single-select-foo')).all(by.css('.select-menu-item')).first().click();
});
element(by.tagName('single-select-bar')).element(by.tagName('button')).click().then(() => {
element(by.tagName('single-select-bar')).all(by.css('.select-menu-item')).first().click();
});
});
});
});
失败的测试给了我这个错误:
- 失败:未知错误:元素
<button _ngcontent-c16="" class="btn btn--select" type="button">...</button>
在点上无法点击 (514,439)。其他元素会收到点击:... (会话信息:chrome = 61.0.3163.100) (驱动信息:chromedriver = 2.32.498537(cb2f855cbc7b82e20387eaf9a43f6b99b6105061),platform = Mac OS X 10.12.5 x86_64的)
答案 0 :(得分:0)
通过实际处理代码中的特定错误来解决此问题。错误和问题解决了browser.wait(until.elementToBeClickable(...))
元素上的杠杆button
,因为错误表示错误发生时该按钮无法点击。