Поведение Cypress прокрутки при `get` и относительном позиционировании - PullRequest
0 голосов
/ 07 мая 2020

При вызове метода Cypress cy.get страница прокручивается так, чтобы выбранный элемент находился вверху страницы.

Это проблема c, когда есть относительно расположенная липкая панель инструментов вверху его, потому что он может систематически скрывать элемент и, таким образом, отказывать в следующих click событиях.

Это воспроизводимо, например, с шаблоном «Dashboard» Material UI.

Есть идеи, как я могу решить эту проблему, либо изменив шаблон, чтобы сохранить липкое верхнее меню без относительного позиционирования (редактировать: на самом деле заголовок абсолютно позиционирован), либо настроить Cypress для небольшого смещения прокрутки при получении элементов?

Конечно, я могу форсировать клики с помощью cy.click({force:true}), но в долгосрочной перспективе это не очень хорошо.

1 Ответ

1 голос
/ 07 мая 2020

Вы можете использовать метод .pause(), чтобы увидеть, действительно ли .get() прокручивает страницу. Согласно документации, при использовании .get() страница никогда не прокручивается, только при использовании команд действия (например, `.click () source ).

FYI есть запрос функции для изменения поведения прокрутки.

Кроме того, есть обходной путь, который вы можете использовать в каждом тесте:

Cypress.on('scrolled', $el => {
  $el.get(0).scrollIntoView({
    block: 'center',
    inline: 'center'
  });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...