我在测试中遇到一种情况,我单击一个按钮,这在我的reactJS端发出了apollo graphQL调用。
createProductCategory({
variables: {
restaurantID: props.restaurant.id,
name: name
}
});
这就是ReactJS端的样子。此 createProductCategory 方法返回一个 promise ,我们等待并继续其余代码。
当我手动单击按钮时,此方法非常正常。我可以在网络选项卡中看到对graphQL的调用,它工作正常。但是,如果我尝试让cypress单击该按钮,则可以看到该按钮被单击了,但从未调用graphQL。我只是不明白为什么它不起作用以及我在做什么错。
有人可以帮我这个忙吗?我试图在所有地方放置等待语句,但是它只是不“等待” reactJS方面的承诺得到解决。
cy.contains("Save")
.click()
.then(() => {
cy.wait(2000)
});
cy.wait(2000)
非常感谢您的帮助。
答案 0 :(得分:1)
在您描述的内容中,您应该具有围绕单击按钮的代码,并像这样等待graphql调用完成
cy.server()
cy.route('/graphql').as('graphql')
cy.get('buton').contains('abc').click()
cy.wait('@graphql')
更多信息:alias waits