如何解决子菜单按钮的点击只能在Test Runner中可靠地运行
对于从Cypress UI / Test Runner(。正常运行)的按钮单击,我一直在CLI(无头或无头)上运行失败(测试通过,单击步骤导致的提交不会更准确)。 /node_modules/.bin/cypress打开)。该元素是一个按钮,单击初始“保存”按钮后即可使用。从CLI运行时,我看到该按钮突出显示,但是单击提交页面的按钮没有发生。在赛普拉斯用户界面中,相同的代码可以成功完成点击和页面提交。代码是:
saveOrder() {
cy.get('button[data-test="saveOrderButton"]').eq(0).click();
cy.wait(5000);
cy.get('button').contains('Save and View').click({ force: true,delay: 10000,timeout: 330000 });
}
第二次单击后,我尝试添加其他等待。我已经尝试过.dblclick()。还尝试了我在其他地方建议的jQuery单击:
cy.get('button').contains('Save and View').then(option => {
cy.wrap(option).contains('Save and View');
option[0].click();
})
最后,还尝试添加.trigger('mouseover')或.trigger('mousemove')。从CLI运行时,所有这些工作都无法使测试正常工作(单击按钮)。任何建议将不胜感激。
this is what happens instead of a click(该按钮突出显示,但未单击以提交)。
编辑-使用以下代码偶尔会获得CLI成功,但仍然非常不可靠。测试运行程序结果每次都会继续通过。我以为问题似乎是在https://www.cypress.io/blog/2019/01/22/when-can-the-test-click上讨论的竞赛条件,也许我没有正确实现第三方插件,但是我仍然对以下内容进行了测试:
saveOrder() {
cy.get('button[data-test="saveOrderButton"]').eq(0).click({ force: true,delay: 600,timeout: 330000 });
cy.wait(5000);
let count = 0
const clickSaveView = $el => {
count += 1
return $el.click()
}
cy.contains('button','Save and View').eq(0)
.should('be.visible')
.wait(35000)
.pipe(clickSaveView)
.wait(5000)
.should($el => {
expect($el).to.not.be.visible
})
.then(() => {
cy.log(`clicked ${count} times`)
})
}
当它通过时,我看到日志记录单击了5次,9次或多次。当它大部分失败时,我会看到该元素仍然可见并且未提交单击提交(错误是“ AssertionError:预期'
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。