Cypress наведите курсор мыши на пункт меню под названием «Автоматизация»

#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')