Jak ověřit popis v Selenium
⚡ Chytré shrnutí
Ověřte popisek v Selenium WebDriver pokrývá dva spolehlivé vzory pro uplatnění textu tooltipu: přímé čtení atributu title HTML a použití Actions API pro najetí myší na prvky, které vykreslují dynamické prvky. JavaPopisky skriptů nebo jQuery.

Popisek v Selenium
A Popisek v Selenium je krátký text, který se zobrazí, když se kurzor myši přesune nad objekt na webové stránce. Objektem může být odkaz, obrázek, tlačítko nebo textová oblast. Text popisku často poskytuje více informací o prvku pod kurzorem.
Popisky se tradičně implementovaly jako atribut „title“ u elementu. Hodnota tohoto atributu se zobrazovala jako popisek při najetí myší na element. Jedná se o statický text s informacemi o elementu bez jakéhokoli stylu.
Dnes je k dispozici mnoho pluginů pro implementaci tooltipů. Pokročilé tooltipy se stylingem, vykreslováním, obrázky a odkazy se vytvářejí pomocí JavaPluginy skriptů nebo jQuery, případně s popisky pouze v CSS.
- Pro přístup ke statickým popiskům implementovaným pomocí atributu HTML „title“ nebo jejich ověření použijte
getAttribute("title")Metoda na WebElement. Vrácená hodnota (text popisku) je pro ověření porovnána s očekávanou hodnotou. - Pro jiné implementace tooltipů použijte rozhraní „Advanced User Interactions API“ od WebDriveru k vytvoření efektu najetí myší a následnému načtení tooltipu pro daný element.
Stručný přehled API pro pokročilé uživatelské interakce
Rozhraní API pro pokročilé interakce uživatelů (Advanced User Interactions API) zpřístupňuje akce uživatelů, jako je přetahování, najetí myší, výběr více prvků, stisknutí a uvolnění kláves a další akce klávesnice nebo myši na webové stránce.
Můžete se na to obrátit oficiální reference třídy Actions pro více podrobností o API.
Před skokemping do scénářů se podívejme na třídy a metody, které potřebujeme k posunutí prvku slideru o offset.
Krok 1) Chcete-li používat API, importujte následující balíčky a třídy:
Krok 2) Vytvořte objekt třídy „Actions“ a sestavte posloupnost uživatelských akcí. Třída Actions vytváří zřetězené akce, jako například moveToElement() a dragAndDrop(). Objekt driver se předává jako parametr jeho konstruktoru.
Krok 3) Vytvořte objekt Action pomocí metody build() třídy „Actions“. Voláním metody perform() provedete každou akci ve frontě v builderu.
Viděli jsme, jak používat některé z uživatelských metod Action poskytovaných rozhraním API: clickAndHold(element), moveByOffset(10, 0) a release(). Rozhraní API nabízí mnoho dalších.
Implementace popisků vs. Selenium Ověřovací přístup
| Typ popisku | Jak se to vykresluje | Selenium Přístup |
|---|---|---|
| Atribut HTML title | Text uložený na samotném elementu; prohlížeč se zobrazí při najetí myší. | Číst s getAttribute("title") or getDomAttribute("title")Není potřeba vznášet se. |
| jQuery / JS plugin | Vyhrazený div se zobrazí vedle elementu po najetí myší. | Použít akce moveToElement(target).perform(), počkejte a poté si přečtěte prvek tooltipu pomocí getText(). |
| Popisek pouze pro CSS | Pseudoelement nebo sourozenecký div přepínaný pomocí :hover. |
Spusťte najetí myší pomocí Akcí a přečtěte si vykreslený text nebo vypočítaný styl. |
Jak ověřit (zpracovat) popis v Selenium
Projděme si přístup k popiskům a jejich ověřování ve dvou běžných scénářích:
- Scénář 1: Popisek je implementován pomocí atributu „title“.
- Scénář 2: Popisek je implementován pomocí pluginu jQuery.
Scénář 1: HTML atribut „title“
V tomto případě používáme vzorový web https://demo.guru99.com/test/social-icon.html a zkontrolujte popisek ikony „github“ v pravém horním rohu stránky.
Nejprve prvek vyhledáme, poté přečteme jeho atribut „title“ a porovnáme ho s očekávaným textem tooltipu.
Protože se popisek nachází v atributu „title“, neautomatizujeme ani najetí myší na daný atribut; hodnotu atributu jednoduše načteme metodou getAttribute().
Zde je kód:
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(); } }
Vysvětlení kódu:
- Najděte WebElement představující ikonu „github“.
- Přečtěte jeho atribut „title“ metodou getAttribute().
- Projevte hodnotu oproti očekávanému textu popisku.
Selenium 4 tip: Preferujte getDomAttribute("title") pro literální atribut HTML a nechť Selenium Správce vyřeší problém s ovladačem namísto jeho pevného kódování. chromedriver.exe.
Scénář 2: Plugin jQuery
Mnoho pluginů jQuery implementuje popisky a každý z nich se vykresluje trochu jinak.
Některé pluginy uchovávají popisek vždy vedle spouštěcího elementu, zatímco jiné vytvářejí tag „div“ dynamicky, když kurzor vstoupí do spouštěcího elementu.
Pro tuto demonstraci používáme styl „jQuery Tools Tooltip“.
Otevřená https://demo.guru99.com/test/tooltip.htmlPo najetí myší na tlačítko „Stáhnout nyní“ se zobrazí pokročilý popisek s obrázkem, pozadím popisku, malou tabulkou a klikatelným odkazem.
Pokud se podíváte na zdrojový kód, div představující tooltip se již nachází vedle odkazu „Stáhnout nyní“. Níže uvedený tag skriptu určuje, kdy se zobrazí.
Nyní ověříme text odkazu zobrazený uvnitř tooltipu.
Nejprve vyhledejte WebElement pro „Stáhnout nyní“. Pomocí Interactions API se přesuňte na prvek (najeďte myší). Dále vyhledejte WebElement, který odpovídá odkazu uvnitř zobrazeného tooltipu, a ověřte jeho text s očekávanou hodnotou.
Zde je kód:
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 Vysvětlení:
- Vyhledejte webový prvek (WebElement), který je namapován na prvek „Stáhnout nyní“, na který podržíte kurzor myši.
- Pomocí rozhraní Interactions API najeďte kurzorem na možnost „Stáhnout nyní“.
- Jakmile se zobrazí popisek, vyhledejte v něm WebElement představující odkaz (tag „a“).
- Přečtěte si text popisku pomocí
getText()a porovnejte ji s očekávanou hodnotou uloženou vexpectedTooltip.








