当e2e测试用例在本地通过且没有任何错误时,Gitlab会给出错误

当e2e测试用例在本地通过且没有任何错误时,Gitlab会给出错误,gitlab,cypress,e2e-testing,cicd,Gitlab,Cypress,E2e Testing,Cicd,我试着在GitLab CI/CD管道中运行cypress测试用例,它给出了这些错误,但它们在本地cypress GUI中运行时没有任何错误。下图显示了一个错误 这是我的cypress e2e测试用例 这是我的.gitlab-ci.yml文件 这是我的cypress.json文件-配置文件 我感谢你的回答。谢谢。最简单的选择是为您的单击()添加{force:true} 其次,您使用了.should('exist'),它检查元素是否存在于DOM中,而不是其可见性。因此,如果您的应用程序在不久

我试着在GitLab CI/CD管道中运行cypress测试用例,它给出了这些错误,但它们在本地cypress GUI中运行时没有任何错误。下图显示了一个错误

这是我的cypress e2e测试用例

这是我的.gitlab-ci.yml文件

这是我的cypress.json文件-配置文件


我感谢你的回答。谢谢。

最简单的选择是为您的
单击()添加
{force:true}

其次,您使用了
.should('exist')
,它检查元素是否存在于DOM中,而不是其可见性。因此,如果您的应用程序在不久的将来使元素可见,您可以使用:

cy.contains('register').should('be.visible').click()

谢谢你的回答。我认为cy.contains('register')。should('exist')。单击({force:true})不会检查按钮是否存在。
should('exist')
正在检查元素是否存在。一旦发现元素存在于DOM中,它就会尝试单击。但是单击只发生在可见元素上,因此您会得到错误。要确保它在不考虑可见性的情况下单击图元,可以使用
force:true
。但如果您想确保元素可见,可以使用
should('be.visible')
再次感谢您的回答。为什么我只在本地cypress GUI的GitLab中发现这个错误?我没有发现错误。我能想到的一个可能原因是执行时间,所以在本地,当您单击元素时,它是可见的,并且单击成功。您可以通过添加
should('be.visible')
来避免这种情况,这样现在cypress就可以等到
defaultCommandTimeOut
提到的时间,如果它没有发现元素是可见的,那么它就无法通过测试,如果它找到了它,那么它就继续执行
click()
cy.contains('register').should('be.visible').click()