Kako provjeriti Tooltip u Selenium
โก Pametni saลพetak
Provjerite opis alata u Selenium WebDriver pokriva dva pouzdana obrasca za navoฤenje teksta opisa: izravno ฤitanje HTML atributa title i koriลกtenje Actions API-ja za zadrลพavanje pokazivaฤa iznad elemenata koji prikazuju dinamiฤki JavaOpisi alata za skripte ili jQuery.

Opis alata u Selenium
A Opis alata u Selenium je kratki tekst koji se pojavljuje kada se miลก zadrลพi iznad objekta na web stranici. Objekt moลพe biti poveznica, slika, gumb ili tekstualno podruฤje. Tekst opisa ฤesto daje viลกe informacija o elementu ispod kursora.
Opisi alata tradicionalno su se implementirali kao atribut "title" na elementu. Vrijednost ovog atributa prikazivala se kao opis alata prilikom zadrลพavanja pokazivaฤa miลกa iznad elementa. To je statiฤki tekst koji daje informacije o elementu bez stiliziranja.
Danas je dostupno mnogo dodataka za implementaciju opisa alata. Napredni opisi alata sa stiliziranjem, renderiranjem, slikama i poveznicama izraฤuju se pomoฤu JavaDodaci za skripte ili jQuery ili samo s CSS-om koji sadrลพe opise.
- Za pristup ili provjeru statiฤkih opisa alata implementiranih putem HTML atributa "title", upotrijebite
getAttribute("title")metoda na WebElementu. Vraฤena vrijednost (tekst opisa) usporeฤuje se s oฤekivanom vrijednoลกฤu radi provjere. - Za ostale implementacije opisa alata, upotrijebite "API za napredne interakcije korisnika" koji pruลพa WebDriver za stvaranje efekta zadrลพavanja miลกa iznad elementa, a zatim dohvatite opis alata za element.
Ukratko o API-ju naprednih korisniฤkih interakcija
API za napredne interakcije korisnika otkriva korisniฤke radnje poput povlaฤenja i ispuลกtanja, zadrลพavanja pokazivaฤa miลกa iznad web stranice, viลกestrukog odabira, pritiska i otpuลกtanja tipki te ostale radnje tipkovnice ili miลกa na web stranici.
Moลพete se pozvati na ovo sluลพbena referenca klase Akcije za viลกe detalja o API-ju.
Prije skokaping U scenarije, pogledajmo klase i metode koje su nam potrebne za pomicanje klizaฤa za pomak.
Korak 1) Za koriลกtenje API-ja, uvezite sljedeฤe pakete i klase:
Korak 2) Kreirajte objekt klase โAkcijeโ i izgradite niz korisniฤkih akcija. Klasa Akcije gradi lanฤane akcije kao ลกto su moveToElement() i dragAndDrop(). Objekt upravljaฤkog programa se prenosi kao parametar njegovom konstruktoru.
Korak 3) Kreirajte objekt Action pomoฤu metode build() klase "Actions". Pozovite metodu perform() za izvrลกavanje svake akcije u redu ฤekanja na alatu za izradu.
Vidjeli smo kako koristiti neke od korisniฤkih metoda Action koje pruลพa API: clickAndHold(element), moveByOffset(10, 0) i release(). API nudi joลก mnogo viลกe.
Implementacija opisa alata u odnosu na Selenium Pristup verifikaciji
| Vrsta opisa alata | Kako se renderira | Selenium Pristup |
|---|---|---|
| HTML atribut naslova | Tekst pohranjen na samom elementu; preglednik se prikazuje prilikom zadrลพavanja miลกa. | ฤitajte s getAttribute("title") or getDomAttribute("title")Nije potrebno lebdenje. |
| jQuery / JS dodatak | Namjenski div se prikazuje pored elementa prilikom prelaska miลกem preko njega. | Koristite akcije moveToElement(target).perform(), priฤekajte, a zatim proฤitajte element tooltip-a s getText(). |
| Opis samo za CSS | Pseudoelement ili srodni div se prebacuje s :hover. |
Pokrenite pokazivaฤ miลกa pomoฤu Akcija i proฤitajte prikazani tekst ili izraฤunati stil. |
Kako provjeriti (rukovati) Tooltip u Selenium
Proฤimo kroz pristup i provjeru opisa alata u dva uobiฤajena scenarija:
- Scenarij 1: Opis alata implementiran je pomoฤu atributa "title".
- Scenarij 2: Opis alata implementiran je pomoฤu jQuery dodatka.
Scenarij 1: HTML atribut "title"
U ovom sluฤaju koristimo primjer web-mjesta https://demo.guru99.com/test/social-icon.html i provjerite opis ikone "github" u gornjem desnom kutu stranice.
Prvo lociramo element, zatim ฤitamo njegov atribut "title" i usporeฤujemo ga s oฤekivanim tekstom opisa.
Buduฤi da se opis alata nalazi u atributu "title", ne automatiziramo ฤak ni zadrลพavanje miลกa iznad njega; jednostavno dohvaฤamo vrijednost atributa metodom getAttribute().
Evo koda:
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(); } }
Objaลกnjenje koda:
- Pronaฤite WebElement koji predstavlja ikonu "github".
- Proฤitajte njegov atribut "title" metodom getAttribute().
- Potvrdite vrijednost u odnosu na oฤekivani tekst opisa.
Selenium 4 savjet: preferiraju getDomAttribute("title") za doslovni HTML atribut i neka Selenium Upravitelj rjeลกava upravljaฤki program umjesto tvrdog kodiranja chromedriver.exe.
Scenarij 2: jQuery dodatak
Mnogi jQuery dodaci implementiraju opise alata, a svaki se prikazuje malo drugaฤije.
Neki dodaci (plugins) uvijek drลพe oznaku opisa pored elementa okidaฤa, dok drugi dinamiฤki stvaraju oznaku "div" kada kursor uฤe u okidaฤ.
Za ovu demonstraciju koristimo stil โjQuery Tools Tooltipโ.
Otvoren https://demo.guru99.com/test/tooltip.htmlZadrลพavanjem pokazivaฤa iznad "Preuzmi odmah" otkriva se napredni opis sa slikom, pozadinom oblaฤiฤa, malom tablicom i vezom na koju se moลพe kliknuti.
Ako pregledate izvorni kod, div koji predstavlja opis alata veฤ se nalazi pored poveznice "Preuzmi odmah". Oznaka skripte ispod kontrolira kada se pojavljuje.
Sada provjeravamo tekst poveznice prikazan unutar tooltip-a.
Prvo pronaฤite WebElement za "Preuzmi odmah". Pomoฤu Interactions API-ja pomaknite se na element (zadrลพite pokazivaฤ miลกa iznad). Zatim pronaฤite WebElement koji se mapira na vezu unutar prikazanog tooltip-a i provjerite njegov tekst u odnosu na oฤekivanu vrijednost.
Evo koda:
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 Objaลกnjenje:
- Pronaฤite WebElement koji se preslikava na element "Preuzmi odmah" iznad kojeg ฤete zadrลพati pokazivaฤ miลกa.
- Pomoฤu Interactions API-ja zadrลพite kursor iznad opcije "Preuzmi sada".
- Nakon ลกto se tooltip vidi, pronaฤite WebElement koji predstavlja poveznicu unutar tooltip-a (oznaka "a").
- Proฤitajte tekst opisa pomoฤu
getText()i usporedite je s oฤekivanom vrijednoลกฤu pohranjenom uexpectedTooltip.








