正如我们所知,我们可以在cypress中设置默认超时,如果元素不存在,cypress将在返回错误元素未找到之前等待该特定时间。那么我们为什么要使用cy.wait()呢?有没有什么特定的例子需要我们使用cy.wait()呢?
dly7yett1#
您应该更喜欢超时而不是等待,因为如果满足条件,超时将更早返回。
// timeout - up to maximum time cy.get(selector, {timeout:10_000}) .should('be.visible') // wait - fixed time cy.wait(10_000) cy.get(selector) .should('be.visible')
cy.wait(time)的好处是什么--如果您有一个不稳定的测试,您可以添加一个固定的等待 * 临时 *,以确定您需要额外超时的地方。
cy.wait(time)
eimct9ow2#
您是正确的,您应该使用默认的命令timeout来等待元素。cy.wait()的主要用例是使用cy.intercept()等待拦截的网络调用。通常,您会看到类似下面的内容,因此测试执行不会继续,直到特定的网络响应返回。
cy.wait()
cy.intercept()
cy.intercept('**/api/my-api').as('api'); // do something to trigger network call cy.wait('@api').should(/* assert network response here */);
还有另一个等待任意时间的用例,尽管这是一个反模式,通常不应该使用。
cy.wait(5000); // wait 5 seconds
来源:https://docs.cypress.io/api/commands/wait
2条答案
按热度按时间dly7yett1#
您应该更喜欢超时而不是等待,因为如果满足条件,超时将更早返回。
cy.wait(time)
的好处是什么--如果您有一个不稳定的测试,您可以添加一个固定的等待 * 临时 *,以确定您需要额外超时的地方。eimct9ow2#
您是正确的,您应该使用默认的命令timeout来等待元素。
cy.wait()
的主要用例是使用cy.intercept()
等待拦截的网络调用。通常,您会看到类似下面的内容,因此测试执行不会继续,直到特定的网络响应返回。
还有另一个等待任意时间的用例,尽管这是一个反模式,通常不应该使用。
来源:https://docs.cypress.io/api/commands/wait