Я уже ответил на вопросы, которые вы подняли , но я напишу здесь решение, чтобы помочь другим пользователям.
Ну, шаг за шагом, вам нужно
Простой
cy.visit('<your url>')
- проверка на наличие элемента
Самый простой способ - использовать открытый экземпляр Cypress.$
jQuery и самостоятельно проверить, существует ли элемент.
cy.visit('<your url>')
cy.waitUntil(() => !!Cypress.$('#elementToBeChecked').length)
() => !!Cypress.$('#elementToBeChecked').length
- это checkFunction
, ожидаемое waitUntil
, оно возвращает логическое значение и waitUntil
повторяет его, пока не вернется true
.
- check для наличия элемента, если он отсутствует, переверните страницу
cy.visit('<your url>')
cy.waitUntil(() => {
if (!Cypress.$('#elementToBeChecked').length) {
return cy.flipPage().then(() => false)
} else {
return true
}
})
, cy.flipPage().then(() => false
полезно, чтобы убедиться, что che checkFunctin
разрешается в false
. waitUntil
будет вызывать checkFunction
, пока не вернется true
.
- продолжать листать страницы, пока не найдет элемент
Готово
- как только он найдет элемент, взаимодействуйте с ним
cy.visit('<your url>')
cy.waitUntil(() => {
if (!Cypress.$('#elementToBeChecked').length) {
return cy.flipPage().then(() => false)
} else {
return true
}
})
cy.get('#elementToBeChecked').click()
Если вам нужно еще более подробное объяснение того, почему вам нужно waitUntil
для такой задачи, как ваша, взгляните здесь .
Надеюсь, это поможет 10