Ответ
Hover — это состояние интерактивного элемента интерфейса, когда пользователь наводит на него курсор мыши (или другой указатель), но не совершает клик.
Основные характеристики:
- Обычно сопровождается визуальными изменениями (изменение цвета, фона, появление тени, подчеркивания).
- Может вызывать появление дополнительных элементов (например, всплывающих подсказок — tooltips).
Что важно проверять в тестах:
- Визуальный feedback: Корректность применения CSS-стилей (
:hover). - Функциональность: Появление/исчезновение связанных элементов.
- Доступность: Работа с клавиатурной навигацией (часто через
:focus). - Кросс-браузерность и адаптивность.
- Поведение на тач-устройствах, где состояние hover может отсутствовать или эмулироваться.
Пример автоматизированной проверки (Playwright):
// Наведение курсора на кнопку и проверка стиля
const button = page.locator('.submit-btn');
await button.hover();
// Проверка изменения цвета фона
await expect(button).toHaveCSS('background-color', 'rgb(0, 120, 215)');
// Проверка появления тултипа
const tooltip = page.locator('.tooltip');
await expect(tooltip).toBeVisible(); Ответ 18+ 🔞
А, слушай, вот эта ваша модная штука — Hover. Это когда пользователь наводит свой курсор на какую-нибудь кнопку, ссылку или прочую хрень, но не кликает ещё. Просто водит, понимаешь? Как будто принюхивается: «А что тут у вас?»
Что при этом происходит, ёпта:
- Элемент меняет внешний вид, сука. Может цвет поменяться, фон, тень появиться, подчёркивание вылезти — в общем, вся эта мишура, чтобы пользователь понял: «О, тут можно тыкнуть!».
- Может вылезти какая-нибудь дополнительная хуйня, например, всплывающая подсказка (tooltip), которая всё объяснит, если сам элемент — мудя какая-то иконка без текста.
А теперь, блядь, что нам, как тестировщикам, с этим безобразием делать? На что смотреть?
- Визуальный отклик, ёбана: Стили-то применяются? Элемент реально меняется, когда на него наводишь? Или он стоит как пень, и хоть обоссысь?
- Функциональность: А связанные элементы (те же тултипы) появляются и исчезают, когда надо? Не зависают ли навечно, как призрак, на экране?
- Доступность, ёптель: А если человек без мыши? С клавиатуры через
Tabэто состояние (:focus) тоже работает? Или только для избранных с мышкой? - Кросс-браузерность и адаптивность: А в другом браузере не пизда ли всё? А на телефоне, где, блядь, ховера в принципе нет? Там что происходит? Обычно первый тап его эмулирует, и это тоже надо проверить, а то будет овердохуища багов.
- Поведение на тачах: Ну, я уже сказал. На планшете или телефоне это состояние может срабатывать при первом тапе и висеть, пока пользователь не тапнет куда-то ещё. Не должно ничего ломаться.
Вот, смотри, как это можно на автомате проверить, например, на Playwright:
// Наводим курсор на кнопку, будто мы пользователь с манипулятором
const button = page.locator('.submit-btn');
await button.hover();
// Проверяем, поменялся ли цвет фона, как задумано
await expect(button).toHaveCSS('background-color', 'rgb(0, 120, 215)');
// Проверяем, вылезла ли обещанная всплывашка
const tooltip = page.locator('.tooltip');
await expect(tooltip).toBeVisible();
Вот и вся магия, блядь. Главное — не забывать, что этот «ховер» может быть хитрожопым и вести себя по-разному везде.