Як перевірити підказку в Selenium
⚡ Розумний підсумок
Перевірити підказку в Selenium WebDriver охоплює два надійні шаблони для встановлення тексту підказки: безпосереднє зчитування атрибута title HTML та використання API дій для наведення курсора на елементи, що відображають динамічні елементи. JavaПідказки скриптів або jQuery.

Підказка в Selenium
A Підказка в Selenium — це короткий текст, який з’являється, коли курсор миші наводиться на об’єкт на веб-сторінці. Об’єктом може бути посилання, зображення, кнопка або текстова область. Підказка часто надає більше інформації про елемент під курсором.
Підказки традиційно реалізовувалися як атрибут «title» елемента. Значення цього атрибута відображалося як підказка при наведенні курсора миші. Це статичний текст, що надає інформацію про елемент без стилізації.
Сьогодні доступно багато плагінів для реалізації підказок. Розширені підказки зі стилізацією, рендерингом, зображеннями та посиланнями створюються за допомогою JavaПлагіни скриптів або jQuery, або ж підказки лише на CSS.
- Щоб отримати доступ до статичних підказок, реалізованих за допомогою атрибута HTML «title», або перевірити їх, використовуйте
getAttribute("title")метод на WebElement. Повернене значення (текст підказки) порівнюється з очікуваним значенням для перевірки. - Для інших реалізацій підказок використовуйте «API розширеної взаємодії з користувачем», що надається WebDriver, щоб створити ефект наведення курсора миші, а потім отримати підказку для елемента.
Коротка інформація про Advanced User Interactions API
API розширеної взаємодії з користувачем надає доступ до таких дій користувача, як перетягування, наведення курсора, вибір кількох елементів, натискання та відпускання клавіш, а також інші дії клавіатури або миші на веб-сторінці.
Ви можете звернутися до цього офіційний довідник класу Actions щоб дізнатися більше про API.
Перед стрибкомping Розглянемо різні сценарії, зокрема класи та методи, необхідні для переміщення елемента-слайдера на певне зміщення.
Крок 1) Щоб використовувати API, імпортуйте такі пакети та класи:
Крок 2) Створіть об'єкт класу «Дії» та побудуйте послідовність дій користувача. Клас Дії будує ланцюгові дії, такі як moveToElement() та dragAndDrop(). Об'єкт драйвера передається як параметр його конструктору.
Крок 3) Створіть об'єкт Action за допомогою методу build() класу “Actions”. Викличте метод perform() для виконання кожної дії з черги в конструкторі.
Ми розглянули, як використовувати деякі методи дій користувача, що надаються API: clickAndHold(element), moveByOffset(10, 0) та release(). API надає багато інших.
Реалізація підказки проти Selenium Підхід до перевірки
| Тип підказки | Як це відображається | Selenium Підхід |
|---|---|---|
| Атрибут заголовка HTML | Текст зберігається на самому елементі; браузер відображається при наведенні курсора. | Читати з getAttribute("title") or getDomAttribute("title")Не потрібно наводити курсор. |
| jQuery / JS плагін | Виділений div відображається поруч з елементом при наведенні курсора миші. | Використовуйте дії moveToElement(target).perform(), зачекайте, а потім прочитайте елемент підказки за допомогою getText(). |
| Підказка лише для CSS | Псевдоелемент або рідний div перемикається за допомогою :hover. |
Запустіть наведення курсора за допомогою «Дій» та зчитайте відображений текст або обчислений стиль. |
Як перевірити (обробити) підказку в Selenium
Давайте розглянемо доступ до підказок та їх перевірку на прикладі двох поширених сценаріїв:
- Сценарій 1: Підказка реалізована за допомогою атрибута «title».
- Сценарій 2: Підказка реалізована за допомогою плагіна jQuery.
Сценарій 1: Атрибут HTML «title»
У цьому випадку ми використовуємо приклад сайту https://demo.guru99.com/test/social-icon.html і перевірте підказку до значка «github» у верхньому правому куті сторінки.
Спочатку ми знаходимо елемент, потім зчитуємо його атрибут «title» та порівнюємо його з очікуваним текстом підказки.
Оскільки підказка знаходиться в атрибуті «title», ми навіть не автоматизуємо наведення миші; ми просто отримуємо значення атрибута за допомогою методу getAttribute().
Ось код:
import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.selenium.*; public class ToolTip { public static void main(String[] args) { String baseUrl = "https://demo.guru99.com/test/social-icon.html"; System.setProperty("webdriver.chrome.driver", "G:\\chromedriver.exe"); WebDriver driver = new ChromeDriver(); driver.get(baseUrl); String expectedTooltip = "Github"; // Find the Github icon at the top right of the header WebElement github = driver.findElement(By.xpath(".//*[@class='soc-ico show-round']/a[4]")); // Read the "title" attribute value of the Github icon String actualTooltip = github.getAttribute("title"); // Assert that the tooltip value matches the expected one System.out.println("Actual Title of Tool Tip " + actualTooltip); if (actualTooltip.equals(expectedTooltip)) { System.out.println("Test Case Passed"); } driver.close(); } }
Пояснення коду:
- Знайдіть WebElement, що представляє значок «github».
- Зчитайте його атрибут «title» за допомогою методу getAttribute().
- Підтвердіть значення відповідно до очікуваного тексту підказки.
Selenium 4 порада: Віддавайте перевагу getDomAttribute("title") для літерального атрибута HTML, і нехай Selenium Менеджер вирішує проблему з драйвером замість жорсткого кодування chromedriver.exe.
Сценарій 2: Плагін jQuery
Багато плагінів jQuery реалізують підказки, і кожен з них відображається дещо по-різному.
Деякі плагіни постійно зберігають розмітку підказки поруч із елементом тригера, тоді як інші динамічно створюють тег «div», коли курсор потрапляє на тригер.
Для цієї демонстрації ми використовуємо стиль «jQuery Tools Tooltip».
відкритий https://demo.guru99.com/test/tooltip.html; якщо навести курсор на «Завантажити зараз», відобразиться розширена підказка із зображенням, фоном для виноски, невеликою таблицею та посиланням, на яке можна натиснути.
Якщо ви перевірите вихідний код, то побачите, що div, що представляє підказку, вже знаходиться поруч із посиланням «Завантажити зараз». Тег скрипта нижче контролює, коли вона з’являється.
Тепер перевіряємо текст посилання, що відображається всередині підказки.
Спочатку знайдіть WebElement для опції «Завантажити зараз». Використайте Interactions API, щоб перейти до елемента (наведіть курсор миші). Далі знайдіть WebElement, який відповідає посиланню всередині відображеної підказки, і перевірте її текст на відповідність очікуваному значенню.
Ось код:
import org.openqa.selenium.interactions.Actions; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.selenium.*; public class JqueryToolTip { public static void main(String[] args) { String baseUrl = "https://demo.guru99.com/test/tooltip.html"; System.setProperty("webdriver.chrome.driver", "G:\\chromedriver.exe"); WebDriver driver = new ChromeDriver(); String expectedTooltip = "What's new in 3.2"; driver.get(baseUrl); WebElement download = driver.findElement(By.xpath(".//*[@id='download_now']")); Actions builder = new Actions(driver); // Hover over the "Download now" link to reveal the tooltip builder.moveToElement(download).build().perform(); WebElement toolTipElement = driver.findElement(By.xpath(".//*[@class='box']/div/a")); String actualTooltip = toolTipElement.getText(); System.out.println("Actual Title of Tool Tip " + actualTooltip); if (actualTooltip.equals(expectedTooltip)) { System.out.println("Test Case Passed"); } driver.close(); } }
Code Пояснення:
- Знайдіть WebElement, який відповідає елементу «Завантажити зараз», на який ви наведете курсор миші.
- Використайте Interactions API, щоб навести курсор на «Завантажити зараз».
- Щойно підказка стане видимою, знайдіть WebElement, що представляє посилання всередині підказки (тег «a»).
- Прочитайте текст підказки за допомогою
getText()і порівняйте його з очікуваним значенням, що зберігається вexpectedTooltip.








