Spec-Zone.ru › Cypress

scrollTo

Прокрутка до определённой позиции.

Синтаксис

cy.scrollTo(position)
cy.scrollTo(x, y)
cy.scrollTo(position, options)
cy.scrollTo(x, y, options)

  // ---or---

  .scrollTo(position)
  .scrollTo(x, y)
  .scrollTo(position, options)
  .scrollTo(x, y, options)

Использование

Правильное использование

cy.scrollTo(0, 500) // Scroll the window 500px down
cy.get('.sidebar').scrollTo('bottom') // Scroll 'sidebar' to its bottom

Неправильное использование

cy.title().scrollTo('My App') // Errors, 'title' does not yield DOM element

Аргументы

position (Строка)

Указанная позиция для прокрутки окна или элемента. Допустимые позиции — topLeft, top, topRight, left, center, right, bottomLeft, bottom, и bottomRight.

cypress-command-positions-diagram

x (Число, Строка)

Расстояние в пикселях от левой стороны окна/элемента или процент от ширины окна/элемента для прокрутки.

y (Число, Строка)

Расстояние в пикселях от верхней стороны окна/элемента или процент от высоты окна/элемента для прокрутки.

options (Объект)

Передайте объект options, чтобы изменить поведение по умолчанию cy.scrollTo().

Опция Значение по умолчанию Описание
duration 0 Прокрутка за указанное время (в мс)
easing swing Прокрутка с плавной анимацией
ensureScrollable true Убедиться, что элемент прокручивается. Ошибка, если элемент не может быть прокручен.
log true Отображает команду в Журнале команд
timeout defaultCommandTimeout Время ожидания, пока .scrollTo() разрешится, прежде чем истечёт срок ожидания

Возвращаемое значение

  • cy.scrollTo() возвращает тот же объект, который был передан предыдущей командой.

Примеры

Позиция

Прокрутка до нижней части окна

cy.scrollTo('bottom')

Прокрутка до центра списка

cy.get('#movies-list').scrollTo('center')

Координаты

Прокрутка на 500 пикселей вниз по списку

cy.get('#infinite-scroll-list').scrollTo(0, 500)

Прокрутка окна на 500 пикселей вправо

cy.scrollTo('500px')

Прокрутка на 25% вниз по высоте элемента

cy.get('.user-photo').scrollTo('0%', '25%')

Опции

Использование линейной анимации прокрутки

cy.get('.documentation').scrollTo('top', { easing: 'linear' })

Прокрутка вправо за 2000 мс

cy.get('#slider').scrollTo('right', { duration: 2000 })

Не выводить ошибку, если элемент не прокручивается

Допустим, мы не знаем, прокручивается ли наш table элемент. Иногда table может быть прокручиваемым (с 2000 строками), а иногда table может не быть прокручиваемым (с 5 строками). Вы можете игнорировать проверку на прокручиваемость элемента, передав ensureScrollable: false.

// will move on to next command even if table is not scrollable
cy.get('table').scrollTo('bottom', { ensureScrollable: false })
cy.get('table').find('tr:last-child').should('be.visible')

Примечания

Действия

cy.scrollTo() — это «команда действия», которая следует всем правилам действия.

Области

cy.scrollTo() ведет себя по-разному, в зависимости от того, начинает ли она серию команд или присоединяется к существующей.

При запуске серии команд:

Это прокручивает window.

cy.scrollTo('bottom')

При присоединении к существующей серии команд:

Это прокрутит <#checkout-items> элемент.

cy.get('#checkout-items').scrollTo('right')

Снимки экрана

Снимки экрана не отражают поведение прокрутки

Cypress не отражает точные позиции прокрутки элементов в снимках экрана. Если вы хотите увидеть реальное поведение прокрутки, мы рекомендуем использовать .pause() для пошагового выполнения каждой команды или просмотр видео записи выполнения теста.

Правила

Требования

  • .scrollTo() требует присоединения к команде, которая возвращает DOM-элемент(ы).
  • .scrollTo() требует, чтобы элемент был прокручиваемым.

Таймауты

  • .scrollTo() может сработать таймаут, ожидая, пока утверждения, которые вы добавили, пройдут.

Журнал команд

Прокрутите до нижней части окна, затем прокрутите элемент вправо

cy.scrollTo('bottom')
cy.get('#scrollable-horizontal').scrollTo('right')

Вышеперечисленные команды будут отображаться в журнале команд следующим образом:

command log for scrollTo

При нажатии на scrollTo в журнале команд консоль выводит следующее:

console.log for scrollTo

История

Версия Изменения
4.11.0 Добавлена поддержка ensureScrollable опции.

См. также

  • .scrollIntoView()

© 2017 Cypress.io
Licensed under the MIT License.
https://docs.cypress.io/api/commands/scrollto

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API