Cum se verifică balonul în Selenium
⚡ Rezumat inteligent
Verificați fereastra de instrumente în Selenium WebDriver acoperă două modele fiabile pentru activarea textului tooltip: citirea directă a atributului title HTML și utilizarea API-ului Actions pentru a plasa cursorul peste elementele care se redau dinamic. JavaSugestii de ajutor pentru script sau jQuery.

Sfat instrument în Selenium
A Sfat instrument în Selenium este un text scurt care apare atunci când mouse-ul trece peste un obiect de pe o pagină web. Obiectul poate fi un link, o imagine, un buton sau o zonă de text. Textul tooltip oferă adesea mai multe informații despre elementul de sub cursor.
În mod tradițional, tooltip-urile erau implementate ca atribut „title” pe un element. Valoarea acestui atribut era afișată ca un tooltip la trecerea mouse-ului peste mouse. Acesta este un text static care oferă informații despre element, fără stilizare.
Astăzi, sunt disponibile multe plugin-uri pentru implementarea tooltip-urilor. Tooltip-urile avansate cu stilizare, randare, imagini și link-uri sunt construite folosind JavaPluginuri Script sau jQuery sau cu tooltip-uri doar pentru CSS.
- Pentru a accesa sau verifica tooltip-urile statice implementate prin atributul HTML „title”, utilizați
getAttribute("title")metoda pe WebElement. Valoarea returnată (textul tooltip) este comparată cu o valoare așteptată pentru verificare. - Pentru alte implementări de tooltip-uri, utilizați „Advanced User Interactions API” furnizat de WebDriver pentru a crea efectul de trecere a mouse-ului peste element și apoi recuperați tooltip-ul pentru element.
O scurtă prezentare a API-ului Advanced User Interactions
API-ul Advanced User Interactions expune acțiuni ale utilizatorilor precum drag and drop, plasarea cursorului, selecția multiplă, apăsarea și eliberarea tastelor și alte acțiuni de la tastatură sau mouse pe o pagină web.
Vă puteți referi la asta referință oficială a clasei Acțiuni pentru mai multe detalii despre API.
Înainte de jumping În scenarii, să analizăm clasele și metodele de care avem nevoie pentru a muta un element slider cu un offset.
Pas 1) Pentru a utiliza API-ul, importați următoarele pachete și clase:
Pas 2) Creați un obiect al clasei „Actions” și construiți secvența de acțiuni ale utilizatorului. Clasa Actions construiește acțiuni înlănțuite, cum ar fi moveToElement() și dragAndDrop(). Obiectul driver este transmis ca parametru constructorului său.
Pas 3) Creați un obiect Action folosind metoda build() a clasei „Actions”. Apelați metoda perform() pentru a executa fiecare acțiune din coadă pe builder.
Am văzut cum se utilizează unele dintre metodele de acțiune ale utilizatorului furnizate de API: clickAndHold(element), moveByOffset(10, 0) și release(). API-ul expune mult mai multe.
Implementare tooltip vs. Selenium Abordarea de verificare
| Tip de tooltip | Cum se redă | Selenium Abordarea |
|---|---|---|
| Atributul titlului HTML | Text stocat chiar pe element; browserul îl afișează la trecerea cu mouse-ul. | Citește cu getAttribute("title") or getDomAttribute("title")Nu este nevoie să treceți cu mouse-ul peste. |
| Plugin jQuery / JS | Un div dedicat este afișat lângă element la trecerea mouse-ului peste acesta. | Utilizați acțiunile moveToElement(target).perform(), așteptați, apoi citiți elementul tooltip cu getText(). |
| Sugestie de instrumente doar pentru CSS | Pseudo-element sau div frate activat/dezactivat cu :hover. |
Declanșează trecerea cu mouse-ul cu Acțiuni și citește textul randat sau stilul calculat. |
Cum să verificați (tratați) balonul explicativ în Selenium
Să parcurgem accesarea și verificarea tooltip-urilor în două scenarii comune:
- Scenariul 1: Tooltip-ul este implementat folosind atributul „title”.
- Scenariul 2: Tooltip-ul este implementat folosind un plugin jQuery.
Scenariul 1: Atributul HTML „title”
În acest caz, folosim site-ul exemplu https://demo.guru99.com/test/social-icon.html și verificați fereastra de afișare a pictogramei „github” din partea dreaptă sus a paginii.
Mai întâi localizăm elementul, apoi citim atributul său „title” și îl comparăm cu textul așteptat al tooltip-ului.
Deoarece tooltip-ul se află în atributul „title”, nici măcar nu automatizăm trecerea cu mouse-ul; pur și simplu recuperăm valoarea atributului cu metoda getAttribute().
Iată codul:
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(); } }
Explicația codului:
- Găsiți WebElement care reprezintă pictograma „github”.
- Citește atributul său „title” cu metoda getAttribute().
- Afirmați valoarea în raport cu textul așteptat al feței de instrumente.
Selenium 4 sfat: Prefera getDomAttribute("title") pentru atributul HTML literal și fie Selenium Managerul rezolvă driverul în loc să îl codeze hardcode chromedriver.exe.
Scenariul 2: Plugin jQuery
Multe pluginuri jQuery implementează tooltip-uri, iar fiecare se afișează puțin diferit.
Unele pluginuri păstrează markup-ul tooltip lângă elementul declanșator în permanență, în timp ce altele creează o etichetă „div” dinamic atunci când cursorul intră pe declanșator.
Pentru această demonstrație, folosim stilul „jQuery Tools Tooltip”.
Operatii Deschise https://demo.guru99.com/test/tooltip.htmlPlasarea cursorului peste „Descărcați acum” dezvăluie o fereastra avansată de instrumente cu o imagine, un fundal pentru explicații, un tabel mic și un link pe care se poate da clic.
Dacă inspectați codul sursă, elementul div care reprezintă fereastra de instrumente se află deja lângă linkul „Descărcați acum”. Eticheta de script de mai jos controlează momentul în care apare.
Acum verificăm textul linkului afișat în tooltip.
Mai întâi, localizați WebElement-ul pentru „Descărcați acum”. Folosiți API-ul Interactions pentru a vă deplasa la element (plasați cursorul mouse-ului). Apoi, găsiți WebElement-ul care corespunde linkului din fereastra de afișare și verificați textul său în raport cu valoarea așteptată.
Iată codul:
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 Explicaţie:
- Localizați WebElement-ul care se asociază cu elementul „Descărcați acum” pe care îl veți plasa cu mouse-ul.
- Folosește API-ul Interactions pentru a plasa cursorul peste „Descărcare acum”.
- După ce tooltip-ul este vizibil, localizați WebElement-ul care reprezintă linkul în interiorul tooltip-ului (eticheta „a”).
- Citiți textul tooltip cu
getText()și o comparați cu valoarea așteptată stocată înexpectedTooltip.








