Cypress: пользовательский тайм-аут в конкретной команде следует - PullRequest
0 голосов
/ 26 июня 2019

Мне нужно иметь пользовательское время ожидания в определенной команде should в Cypress.У меня есть этот файл json, который имеет глобальное время ожидания:

{
  "viewportWidth": 1600,
  "defaultCommandTimeout": 10000
}

В конкретном случае мне нужно большее время ожидания, я хотел бы что-то вроде этого:

cy.get('body').should('contain','success', {timeout: 30000})

как мнесделай это?Кстати, я не хочу отменять тайм-аут команды по умолчанию, мне нужен определенный тайм-аут.

Ответы [ 2 ]

1 голос
/ 27 июня 2019

Возможно, вы захотите переместить ваш параметр {timeout: 30000} в родительскую команду, например:

cy.get('body', {timeout: 30000}).should('contain','success')

Таким образом, утверждения родительской команды по умолчанию и все последующие утверждения наследуют этот тайм-аут, переопределяя тайм-аут команды по умолчанию. Подробнее здесь: https://docs.cypress.io/guides/core-concepts/introduction-to-cypress.html#Timeouts

0 голосов
/ 27 июня 2019

tl; dr

Просто передайте тайм-аут на get, он передаст его на should.

cy.get('body', {timeout: 30000}).should('contain','success')

Объяснение

Это объясненов официальной документации should в разделе Timeouts :

.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

Техника более подробно описана в документах о тайм-аутах .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...