Cypress-在click()之后记录来自请求的响应数据

问题描述 投票:0回答:1

尽管我知道这可能不是最佳实践,但是我想要实现的是在整个UI中创建记录后,从数据库中静默删除记录。以这种方式,我想保持我们的测试环境尽可能清晰,并减少测试数据的噪音。

我的测试通过单击UI创建新记录后,我等待POST请求完成,然后我想从响应中提取ID(因此,我可以重复使用它,通过调用[C0 ])。

这是我作为展示柜进行的样本测试。我想知道为什么在此示例中什么都没有记录。

cy.request('DELETE', '/id')

据我从这里it('GET cypress and log', () => { cy.server() .route('**/repos/cypress-io/cypress*') .as('getSiteInfo'); cy.visit('https://www.cypress.io/dashboard'); cy.get('img[alt="Cypress.io"]') .click() .wait('@getSiteInfo') .then((response) => { cy.log(response.body) }) }) 所见,应该没问题。

testing cypress e2e-testing qa
1个回答
0
投票

您的代码包含两个问题。

第一https://docs.cypress.io/api/commands/wait.html#Alias触发要加载的新页面,但是cypress不会等到引发click事件(因为您不使用PageLoad)。在我的PC上,该请求大约需要5秒钟,直到visit之后被触发。因此,您应该使用click

第二:wait(..., { timeout: 10000 })产生XHR对象,而不是响应。因此,您在wait()中的代码不正确。

此代码有效:

then
© www.soinside.com 2019 - 2024. All rights reserved.