Cypress:如何等待所有请求完成
我正在使用cypress测试我们的web应用程序 在某些页面中,存在多次执行的不同端点请求。[例如GET/A GET/B GET/A] 在cypress中,等待所有请求完成并保证页面已完全加载的最佳做法是什么Cypress:如何等待所有请求完成,cypress,Cypress,我正在使用cypress测试我们的web应用程序 在某些页面中,存在多次执行的不同端点请求。[例如GET/A GET/B GET/A] 在cypress中,等待所有请求完成并保证页面已完全加载的最佳做法是什么 我不想使用大量的cy.wait()命令来等待处理所有请求。(每个页面中有许多不同的请求集)默认情况下,cypress会等待60秒以加载页面。这段时间可以在项目中的cypress.json中配置。或您可以在访问某个页面后使用cy.pause(),它将暂停测试,您可以确保该页面已加载,然后继续
我不想使用大量的cy.wait()命令来等待处理所有请求。(每个页面中有许多不同的请求集)默认情况下,cypress会等待60秒以加载页面。这段时间可以在项目中的cypress.json中配置。或您可以在访问某个页面后使用cy.pause(),它将暂停测试,您可以确保该页面已加载,然后继续。根据没有确定的方法。但我将分享我使用的一些解决方案:
cy.server()
cy.route('GET', '**/users').as('getusers')
cy.visit('/')
cy.wait('@getusers')
您的代码片段是正确的,但只有在您事先知道所有请求的情况下,这才有效。另外,如果在页面中有/users请求两次,则必须复制代码并执行wait两次。您可以从开发人员工具签出所有XHR请求。如果有/users两次,上面的代码段将等待两个请求完成。你不必重复。我会尝试,但不确定一次等待是否足够。请求(到同一个端点)不相关,可以随时执行。好的想法是
***/users
应该匹配页面上的所有请求端点,否则它将不起作用。请参阅本教程-等待所有cy.route()
发生可能不够,最好在DOM中找到一些指示符。我通常会寻找一些我知道最后加载的内容(文本、图像)。