当前位置: 首页 > 知识库问答 >
问题:

如何使用剧作家等待请求并验证响应?

施翰学
2023-03-14

这是我第一次使用剧作家,我不知道如何等待请求和验证响应。我已经使用cypress很长时间了,管理网络请求非常容易。例如,我需要在单击按钮后验证响应,这就是我使用cypress的方法:

        cy.server()
        cy.route('POST', '/api/contacts').as('newContact')

        cy.get('.btn').click()

        cy.wait('@newContact').then((response) => {
            expect(response.status).to.eq(400)
            expect(response.responseBody.data.name).to.eq('abcde')
        })

这就是我试图对剧作家做同样的事情的方式,但是它验证了早在点击保存按钮之前就发送的GET请求。我不知道如何正确管理这个请求,这是我的测试套件的一个停止:

        await contacts.clickSaveBtn()

        await page.waitForResponse((resp) => {
            resp.url().includes('/api/contacts')
            expect(resp.status()).toBe(400)
        })

任何帮助或建议都将不胜感激

共有1个答案

阳文轩
2023-03-14

您需要做的是首先开始等待响应,然后单击,这样waitForResponse()就可以捕获由于单击而产生的实际响应。

await Promise.all([
    page.waitForResponse(resp => resp.url().includes('/api/contacts') && resp.status() === 400),
    contacts.clickSaveBtn()
]);

这应该处理可能的竞争条件。

 类似资料:
  • 我在spring mvc 3.2.2中使用apache http客户端同步发送5个get请求,如图所示。 如何异步(并行)发送所有这些内容并等待请求返回,以便从所有 GET 请求返回已解析的有效负载字符串?

  • 问题内容: 我正在尝试编写一个JS代码,如果给定的数字已经存在于数据库中,它将取消“ btn_submit”按钮.onclick事件。我使用AJAX向数据库查询给定的编号,并确定是否应将数据发送到将上传问题的.php站点。为了确定这一点,我需要numOfRows变量的值,但是因为我在AJAX中将其设置为0,所以validation()函数将在我的AJAX查询完成之前完成,这将导致始终表示给定数字不

  • 是否可以在不等待响应的情况下发送HTTP请求? 我在做一个物联网项目,需要记录传感器的数据。在每一个设置中,都有许多传感器,一个中央协调器(主要由Raspberry Pi实现)从传感器收集数据,并通过Internet将数据发送到服务器。 提前感谢! 编辑:传感器是无线的,但他们使用的技术在发送到协调器时很少(或没有)延迟。此协调器必须通过Internet发送数据。但是,假设互联网连接不好。因为这将

  • 问题内容: 我是Android和Volley的新手,需要您的帮助。我需要发布一个String,有一个json来响应它,如果它没有引发错误的请求,请从我的请求中获取一些值来启动一个新的Intent。 这是我想做的一个简单模式:按下登录按钮->星形请求->检查是否正常->使用响应值启动新的意图。 我已经看到Volley使用异步方法进行查询。这是我的代码: 我之所以使用Volley,是因为我的Gradl

  • 我有一个简单的Java程序,它使用SpringWebClient发送多个请求。每个都返回一个mono,我使用的是response。subscribe()以检查结果。 但是,我的主执行线程在处理所有请求之前完成,除非我添加一个长线程。睡眠()。 对于CompletableFutures,您可以使用:CompletableFuture。allOf(期货)。join(); 有没有办法等待所有单声道的完成

  • 我正在尝试使用selenium webdriver+Java+NGWebDriver来自动化一个混合的AngularJS2(2.4.10)web应用程序。