赛普拉斯:特定应命令中的自定义超时

Rog*_*des 7 javascript cypress

我需要should在 cypress的特定命令中自定义超时。我有这个具有全局超时的 json 文件:

{
  "viewportWidth": 1600,
  "defaultCommandTimeout": 10000
}
Run Code Online (Sandbox Code Playgroud)

有一个特定的情况,我需要更高的超时时间,我想要这样的东西:

cy.get('body').should('contain','success', {timeout: 30000})
Run Code Online (Sandbox Code Playgroud)

我该怎么做呢?顺便说一句,我不想​​覆盖默认命令超时,我需要一个特定的超时。

tot*_*dli 12

tl;博士

只需将超时传递给get,它就会将其传递给should

cy.get('body', {timeout: 30000}).should('contain','success')
Run Code Online (Sandbox Code Playgroud)

解释

should在超时部分的官方文档中进行了解释:

.should()将继续重试其指定的断言,直到超时。

cy.get('input', { timeout: 10000 }).should('have.value', '10')
// timeout here will be passed down to the '.should()'
// and it will retry for up to 10 secs
Run Code Online (Sandbox Code Playgroud)

该技术在关于 timeouts文档中有更详细的解释。