Cypress.io: В любом случае, чтобы проверить конкретную сумму прокрутки?

Хотел узнать, есть ли какой-нибудь способ проверить количество прокрутки в определенном диапазоне с помощью Cypress.io.

Более конкретно

  1. Начиная с верхней части страницы, нажмите кнопку
  2. Страница прокручивается до определенной высоты
  3. Проверьте правильность высоты прокрутки в определенном диапазоне

Моя попытка: я полагаю, что лучше всего было бы проверить это, чтобы проверить, что текущий div не находится в видимой области экрана телефона. Затем прокрутите вниз, чтобы он стал видимым.

cy.get('#angular-projects').should('not.be.visible') // div #angular-projects
cy.get('#developer-projects').click() // button
cy.get('#angular-projects').should('be.visible')

Хотел узнать, можно ли это сделать через мокко, чай, если вокруг кипариса нет работы

1 ответ

Решение

Вы можете получить window возьмите объект с помощью cy.window(), а затем создайте подтверждение, проверяя, соответствует ли scrollY ожидаемому.

Что-то вроде этого должно проверить, находится ли прокрутка между 300 и 500 пикселями сверху (первый аргумент closeTo указывает желаемое значение, а второй - предел ошибки, который вы хотите принять):

cy.window().then(($window) => {
  expect($window.scrollY).to.be.closeTo(400, 100);
});

Вот еще одна адаптация:

// * Ability to Test scroll position of window :)
cy.window().then((win) => {
  win.scrollTo(0, 1000);
});

cy.window()
  .its("scrollY")
  .should(($scrollY) => {
    // expect($scrollY).to.have.value(0);
    expect($scrollY).to.be.closeTo(0, 0);
  });
Другие вопросы по тегам