#css #css-selectors #cypress
#css #css-селекторы #cypress
Вопрос:
Я пытаюсь навести курсор мыши на пункт меню (снимки — он находится на вкладке автоматизация), используя приведенную ниже команду, однако, похоже, это не работает:
cy.get('.menu.button.overlay_button.projects_popover').click(),
cy.contains('Automation').trigger('mousedown'),
cy.contains('Shots').trigger('mousedown').click()
Есть ли у cypress опция наведения?
Сначала я нажимаю на проекты, затем перехожу к автоматизации, а затем нажимаю на снимки.
кроме того, я не думаю, что в cypress есть что-то вроде наведения. Я хочу навести курсор мыши на эту вкладку «Автоматизация». Я могу щелкнуть по нему, но я не могу выполнить наведение, как selenium. Пожалуйста, помогите
Комментарии:
1. Во второй строке отсутствует точка — но я предполагаю, что это не решение вашей проблемы O 🙂
2. @andreas, нет, я это исправил, но проблема не в этом
3. кроме того, я не думаю, что в cypress есть что-то вроде наведения. Я хочу навести курсор мыши на эту «Автоматизацию». Я могу щелкнуть по нему
Ответ №1:
Нет, у Cypress в настоящее время нет hover()
команды. Однако это, вероятно, будет добавлено в будущем.
В браузере существует две разные формы кода наведения:
1) css
стилизация с помощью :hover
псевдокласса
2) javascript
через mouseover/mouseout
прослушиватели событий.
Если ваше приложение использует #1 ( css
), cypress в настоящее время не может его протестировать, поскольку не может анализировать псевдостили css с помощью javascript.
Если ваше приложение использует #2 ( javascript
события), вы можете использовать обходной путь, запуская mouseover/mouseout
события вручную:
cy.get('.menu.button.overlay_button.projects_popover').click(),
cy.contains('Automation').trigger('mouseover'),
cy.contains('Shots').trigger('mouseover').click()
Также возможно, что ваше приложение прослушивает mouseenter
/ mouseleave
события, и в этом случае вы также можете их запустить.
Ответ №2:
В некоторых случаях это событие является более надежным.
cy.contains('Automation').trigger('mouseenter')