Descoperă în Seleniu
Un Tooltip în Selenium este un text care apare atunci când un mouse trece deasupra unui obiect de pe o pagină web. Obiectul poate fi o legătură, o imagine, un buton, o zonă de text etc. Textul de tip tooltip oferă deseori mai multe informații despre obiectul pe care utilizatorul se deplasează deasupra cursorului mouse-ului.
Sfaturile de instrumente au fost în mod tradițional implementate ca un atribut „title” pentru un element. Valoarea acestui atribut a fost afișată ca o descriere în cursa mouse-ului. Acesta este un text static care oferă informații despre element fără stil.
Acum, există multe pluginuri disponibile pentru implementarea „sfaturilor de instrumente”. Sfaturi de instrumente avansate cu stil, redare, imagini și linkuri sunt implementate utilizând pluginuri JavaScript / JQuery sau folosind sfaturi de instrumente CSS.
- Pentru accesarea sau verificarea sfaturilor de instrumente statice care sunt implementate utilizând atributul HTML „title”, putem folosi pur și simplu metoda getAttribute („title”) a WebElement. Valoarea returnată a acestei metode (care este textul de tip tooltip) este comparată cu o valoare așteptată pentru verificare.
- Pentru alte forme de implementare a sfaturilor de instrumente, va trebui să folosim „Advanced User Interactions API” furnizat de Web Driver pentru a crea efectul mouse-ului și apoi pentru a prelua sfatul pentru element.
Un rezumat al API-ului Advanced User Interactions:
API-ul Advanced User Interactions oferă API-ul pentru acțiuni ale utilizatorului, cum ar fi glisare și fixare, deplasare, selectare multiplă, apăsare și eliberare tastă și alte acțiuni folosind tastatura sau mouse-ul pe o pagină web.
Puteți consulta acest link pentru mai multe detalii despre API.
https://seleniumhq.github.io/selenium/docs/api/java/index.html?org/openqa/selenium/interactions/Actions.html
Aici, să vedem cum să folosim câteva clase și metode de care ar trebui să mutăm un element glisant cu un offset.
Pasul 1) Pentru a utiliza API-ul, trebuie importate următoarele pachete / clase:
Pasul 2) Creați un obiect din clasa „Acțiuni” și creați secvența acțiunilor utilizatorului. Clasa de acțiuni este utilizată pentru a construi secvența de acțiuni ale utilizatorului cum ar fi moveToElement (), dragAndDrop () etc. Diverse metode legate de acțiunile utilizatorului sunt furnizate de API.
Obiectul driver este furnizat ca parametru constructorului său.
Pasul 3) Creați un obiect de acțiune utilizând metoda build () a clasei „Acțiuni”. Apelați metoda perform () pentru a executa toate acțiunile construite de obiectul Actions (constructor aici).
Am văzut cum să folosim unele dintre metodele de acțiuni ale utilizatorului furnizate de API - clickAndHold (element), moveByOffset (10,0), release (). API oferă multe astfel de metode.
Consultați linkul pentru mai multe detalii.
Cum se obține textul Tooltip în Selenium Webdriver
Să vedem demonstrația accesării și verificării sfaturilor de instrumente în scenariul simplu
- Scenariul 1: Tooltip este implementat folosind atributul „title”
- Scenariul 2: Tooltip este implementat folosind un plugin jQuery.
Scenariul 1: atribut HTML „title”
Pentru acest caz, să luăm exemplul site-ului - http://demo.guru99.com/test/social-icon.html.
Vom încerca să verificăm sfatul pentru pictograma „github” din partea dreaptă sus a paginii.
Pentru a face acest lucru, vom găsi mai întâi elementul și vom obține atributul „titlu” și îl vom verifica cu textul așteptat al sfatului instrumentului.
Deoarece, presupunem că sfatul instrumentului se află în atributul „title”, nici măcar nu automatizăm efectul mouse-ului, ci recuperăm pur și simplu valoarea atributului folosind metoda „getAttribute ()”.
Iată codul
import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.selenium.chrome.ChromeDriver;import org.openqa.selenium. *;Sfat publicitar de clasă publică {public static main main (String [] args) {String baseUrl = "http://demo.guru99.com/test/social-icon.html";System.setProperty ("webdriver.chrome.driver", "G: \\ chromedriver.exe");Driver WebDriver = nou ChromeDriver ();driver.get (baseUrl);Șirul expectedTooltip = "Github";// Găsiți pictograma Github în partea dreaptă sus a antetuluiWebElement github = driver.findElement (By.xpath (".//*[@ class = 'soc-ico show-round'] / a [4]"));// obțineți valoarea atributului „title” al pictogramei githubȘir actualTooltip = github.getAttribute ("titlu");// Afirmați că valoarea sfatului este conform așteptărilorSystem.out.println ("Titlul actual al sfatului instrumentului" + actualul sfat);if (actualTooltip.equals (expectedTooltip)) {System.out.println ("Test Test Passed");}driver.close ();}}
Explicația codului
- Găsiți WebElement care reprezintă pictograma „github”.
- Obțineți atributul „title” utilizând metoda getAttribute ().
- Afirmați valoarea față de valoarea de descărcare așteptată.
Scenariul 2: plugin JQuery:
Există o mulțime de pluginuri JQuery disponibile pentru a implementa sfaturile de instrumente și fiecare are o formă ușor diferită de implementare.
Unele pluginuri se așteaptă ca sfatul de instrument HTML să fie prezent tot timpul lângă elementul pentru care este aplicabilă sfatul de instrumente, în timp ce celelalte creează o etichetă dinamică „div”, care apare în timp ce se deplasează deasupra elementului.
Pentru demonstrația noastră, să luăm în considerare modalitatea „jQuery Tools Tooltip” de implementare a tooltip-ului.
Aici, în adresa URL - http://demo.guru99.com/test/tooltip.html puteți vedea demo-ul în cazul în care mouse-ul plutind peste „Descărcați acum”, obținem un sfat de instrumente avansat cu o imagine, fundal de înștiințare, un tabel și un link din interiorul acestuia care poate fi făcut clic.
Dacă vă uitați la sursa de mai jos, puteți vedea că eticheta div care reprezintă sfatul este întotdeauna prezentă lângă eticheta linkului „Descărcați acum”. Dar, codul din eticheta de script de mai jos controlează când trebuie să apară.
Să încercăm să verificăm doar textul link-ului din sfat pentru prezentarea noastră aici.
Mai întâi vom găsi WebElementul corespunzător „Descărcați acum”. Apoi, folosind API-ul Interacțiuni, vom trece la element (mouse-hover). Apoi, vom găsi WebElement-ul care corespunde link-ului în interiorul sfatului afișat și îl vom verifica în funcție de textul așteptat.
Iată codul
import org.openqa.selenium.interactions.Action;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. *;clasă publică JqueryToolTip {public static main main (String [] args) {String baseUrl = "http://demo.guru99.com/test/tooltip.html";System.setProperty ("webdriver.chrome.driver", "G: \\ chromedriver.exe");Driver WebDriver = nou ChromeDriver ();String expectedTooltip = "Ce este nou în 3.2";driver.get (baseUrl);WebElement download = driver.findElement (By.xpath (".//*[@ id = 'download_now']"));Generator de acțiuni = Acțiuni noi (driver);builder.clickAndHold (). moveToElement (descărcare);builder.moveToElement (download) .build (). perform ();WebElement toolTipElement = driver.findElement (By.xpath (".//*[@ class = 'box'] / div / a"));Șir actualTooltip = toolTipElement.getText ();System.out.println („Titlul actual al sfatului instrumentului” + sfat actual);if (actualTooltip.equals (expectedTooltip)) {System.out.println ("Test Test Passed");}driver.close ();}}
Explicarea codului
- Găsiți elementul Web care corespunde elementului „descărcați acum” pe care îl vom trece cu mouse-ul.
- Folosind API-ul Interacțiuni, mouse-ul treceți pe „Descărcați acum”.
- Presupunând că tooltip-ul este afișat, găsiți WebElement-ul care corespunde link-ului din interiorul tooltip, adică eticheta „a”.
- Verificați textul de tip tooltip al linkului recuperat folosind getText () în raport cu o valoare așteptată pe care am stocat-o în „expectedToolTip”
Rezumat:
În acest tutorial, ați învățat cum să accesați Tooltips folosind driverul Selenium Web.
- Sfaturile pentru instrumente sunt implementate în diferite moduri -
- Implementarea de bază se bazează pe atributul HTML „title”. getAttribute (title) obține valoarea sfatului.
- Alte implementări ale sfaturilor de instrumente, cum ar fi JQuery, sfaturile de instrumente CSS necesită API-ul Interacțiuni pentru a crea efectul de trecere a mouse-ului
- API Advanced User Interactions
- moveToElement (element) din clasa Actions este folosit pentru a trece cu mouse-ul peste un element.
- Metoda Build () a clasei Actions construiește secvența acțiunilor utilizatorului într-un obiect Action.
- Perform () din clasa Action execută toată secvența acțiunilor utilizatorului simultan.
- Pentru a verifica un sfat, trebuie mai întâi să plasați mouse-ul peste element, apoi să găsim elementul care corespunde vârfului instrumentului și să obținem textul sau alte valori pentru a le verifica față de valorile așteptate.