tl; dr
Дайте больший тайм-аут для contains
:
cy.get('#search-button').click();
cy.contains('Test item 1', { timeout: 4000 }).click();
cy.get('#cheapest-offer-button').click();
Объяснение
Как и у многих команд Cypress, contains
имеютВторой аргумент , который принимает объект опции.Вы можете передать количество миллисекунд, которые команда должна ждать в ключе timeout
, например:
.contains('Stuff', { timeout: 5000 }) // Timeout after 5 secs
Таким образом, команда будет вести себя так, как если бы вы добавили wait
перед ней, но если командабыл успешным, он не будет ждать все время, как wait
делает.
Официальные документы Cypress о тайм-аутах по таймаутам объясняют эту технику: как она работает, как это должно быть сделано и какэто влияет на цепочечные утверждения.
Если причиной, по которой вы не можете щелкнуть элемент, является видимость, тогда вы можете попробовать .click({ force: true })
, хотя это должно быть последним средством, поскольку оно может скрывать фактические ошибки.