【问题标题】:Cypress async issue赛普拉斯异步问题
【发布时间】:2019-10-25 21:36:26
【问题描述】:

我在测试中遇到一种情况,我单击一个按钮,它在我的 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)

提前感谢您的帮助。

【问题讨论】:

标签: reactjs cypress


【解决方案1】:

根据您的描述,您应该有围绕按钮单击并等待 graphql 调用完成的代码

cy.server()
cy.route('/graphql').as('graphql')
cy.get('buton').contains('abc').click()
cy.wait('@graphql')

更多信息:alias waits

【讨论】:

    猜你喜欢
    • 2022-11-17
    • 2020-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-15
    相关资源
    最近更新 更多