Verktøytips i selen
En verktøytips i selen er en tekst som vises når en mus svever over et objekt på en webside. Objektet kan være en lenke, et bilde, en knapp, et tekstområde osv. Tekstens verktøytips gir ofte mer informasjon om objektet som brukeren svever over musemarkøren.
Verktøytips ble tradisjonelt implementert som et "tittel" -attributt til et element. Verdien av dette attributtet ble vist som en verktøytips for musen. Dette er en statisk tekst som gir informasjon om elementet uten styling.
Nå er det mange plugins tilgjengelig for implementering av verktøystips. Avanserte verktøytips med styling, gjengivelse, bilder og lenker implementeres ved hjelp av JavaScript / JQuery-plugins eller ved hjelp av CSS Tooltips.
- For å få tilgang til eller verifisere de statiske verktøytipsene som er implementert ved hjelp av HTML "title" -attributtet, kan vi ganske enkelt bruke getAttribute ("title") -metoden til WebElement. Den returnerte verdien av denne metoden (som er verktøytipsteksten) sammenlignes med en forventet verdi for bekreftelse.
- For andre former for implementering av verktøytips, må vi bruke "Advanced User Interactions API" som tilbys av webdriveren for å lage musepekeren og deretter hente verktøytipsen for elementet.
En kort beskrivelse av Advanced User Interactions API:
Advanced User Interactions API gir API for brukerhandlinger som dra og slipp, svev, flervalg, tastetrykk og slipp og andre handlinger ved hjelp av tastatur eller mus på en webside.
Du kan se denne lenken for mer informasjon om API.
https://seleniumhq.github.io/selenium/docs/api/java/index.html?org/openqa/selenium/interactions/Actions.html
Her, la oss se hvordan du bruker et par klasser og metoder vi trenger for å flytte et skyveelement med en forskyvning.
Trinn 1) For å bruke API-en må følgende pakker / klasser importeres:
Trinn 2) Opprett et objekt i klassen "Handlinger" og bygg sekvensen av brukerhandlinger. Handlingsklasse brukes til å bygge sekvensen av brukerhandlinger som moveToElement (), dragAndDrop () etc. Ulike metoder relatert til brukerhandlinger er gitt av API.
Driverobjektet er gitt som en parameter til konstruktøren.
Trinn 3) Opprett et handlingsobjekt ved hjelp av build () -metoden i "Handlinger" -klassen. Kall utfør () -metoden for å utføre alle handlingene som er bygget av Handlinger-objektet (byggherre her).
Vi har sett hvordan du bruker noen av brukerhandlingsmetodene som tilbys av API - clickAndHold (element), moveByOffset (10,0), release (). API gir mange slike metoder.
Se lenken for mer informasjon.
Hvordan få verktøytipstekst i Selenium Webdriver
La oss se demonstrasjonen av å få tilgang til og verifisere verktøytipsene i det enkle scenariet
- Scenario 1: Verktøytips implementeres ved bruk av "title" -attributtet
- Scenario 2: Verktøytips implementeres ved hjelp av et jQuery-plugin.
Scenario 1: HTML-tittelattributt
La oss i dette tilfellet ta eksemplet på nettstedet - http://demo.guru99.com/test/social-icon.html.
Vi vil prøve å verifisere verktøytipsen til "github" -ikonet øverst til høyre på siden.
For å gjøre det, vil vi først finne elementet og få 'tittel' attributtet og verifisere med den forventede verktøytipsteksten.
Siden vi antar at verktøytipsen er i "tittel" -attributtet, automatiserer vi ikke engang musepekeren, men henter bare attributtets verdi ved hjelp av "getAttribute ()" -metoden.
Her er koden
importer org.openqa.selenium.By;importer org.openqa.selenium.WebDriver;importer org.openqa.selenium.chrome.ChromeDriver;importer org.openqa.selenium. *;verktøytips for offentlig klasse {public static void main (String [] args) {Streng baseUrl = "http://demo.guru99.com/test/social-icon.html";System.setProperty ("webdriver.chrome.driver", "G: \\ chromedriver.exe");WebDriver driver = ny ChromeDriver ();driver.get (baseUrl);String expectTooltip = "Github";// Finn Github-ikonet øverst til høyre i overskriftenWebElement github = driver.findElement (By.xpath (".//* ** @ class = 'soc-ico show-round'] / a [4]"));// få verdien av "title" -attributtet til github-ikonetStreng actualTooltip = github.getAttribute ("tittel");// Påstå at verktøytipsverdien er som forventetSystem.out.println ("Faktisk tittel på verktøytips" + faktisk verktøytips);hvis (actualTooltip.equals (expectTooltip)) {System.out.println ("Test Case Passed");}driver.close ();}}
Forklaring av kode
- Finn WebElement som representerer "github" -ikonet.
- Få "tittel" -attributtet ved hjelp av getAttribute () -metoden.
- Sett verdien mot den forventede verktøytipsverdien.
Scenario 2: Plugin for JQuery:
Det er mange JQuery-plugins tilgjengelig for å implementere verktøytipsene, og hver og en har en litt annen form for implementering.
Noen plugins forventer at HTML-verktøytipsen hele tiden skal være tilstede ved siden av elementet som verktøytipsen gjelder, mens de andre lager en dynamisk "div" -kode, som dukker opp mens du svever over elementet.
For demonstrasjonen vår, la oss vurdere "jQuery Tools Tooltip" -måten for implementering av tooltip.
Her i URL-en - http://demo.guru99.com/test/tooltip.html kan du se demoen der musen svever over "Last ned nå", vi får en avansert verktøytips med et bilde, tekstbakgrunn, et bord og en lenke inni den som er klikkbar.
Hvis du ser på kilden nedenfor, kan du se at div-koden som representerer verktøytipsen alltid er tilstede ved siden av "Last ned nå" -koblingen. Men koden inne i skriptekoden nedenfor styrer når den må popup.
La oss prøve å verifisere bare lenketeksten i verktøytipsen for demonstrasjonen vår her.
Vi finner først WebElement som tilsvarer "Last ned nå". Deretter bruker vi Interactions API, vi flytter til elementet (musepekeren). Deretter finner vi WebElement som tilsvarer lenken i den viste verktøytipsen og verifiserer den mot den forventede teksten.
Her er koden
importer org.openqa.selenium.interactions.Action;importer org.openqa.selenium.interactions.Action;importer org.openqa.selenium.By;importer org.openqa.selenium.WebDriver;importer org.openqa.selenium.chrome.ChromeDriver;importer org.openqa.selenium. *;offentlig klasse JqueryToolTip {public static void main (String [] args) {Streng baseUrl = "http://demo.guru99.com/test/tooltip.html";System.setProperty ("webdriver.chrome.driver", "G: \\ chromedriver.exe");WebDriver driver = ny ChromeDriver ();String expectTooltip = "Hva er nytt i 3.2";driver.get (baseUrl);WebElement nedlasting = driver.findElement (By.xpath (".//* ** @ id = 'download_now']"));Handlingsbygger = nye handlinger (driver);builder.clickAndHold (). moveToElement (nedlasting);builder.moveToElement (nedlasting) .build (). perform ();WebElement toolTipElement = driver.findElement (By.xpath (".//* ** @ class = 'box'] / div / a"));Streng actualTooltip = toolTipElement.getText ();System.out.println ("Faktisk tittel på verktøytips" + faktisk verktøytips);hvis (actualTooltip.equals (expectTooltip)) {System.out.println ("Test Case Passed");}driver.close ();}}
Kode Forklaring
- Finn WebElement som tilsvarer elementet "last ned nå" som vi holder musen over.
- Bruk Interactions API, og hold musepekeren på "Last ned nå".
- Forutsatt at verktøytipsen vises, finn WebElement som tilsvarer lenken inne i verktøytipsen, dvs. "a" -koden.
- Bekreft koblingens verktøytipstekst hentet ved hjelp av getText () mot en forventet verdi vi har lagret i "expectToolTip"
Sammendrag:
I denne veiledningen har du lært hvordan du får tilgang til verktøytips ved hjelp av Selenium Web-driver.
- Verktøytips implementeres på forskjellige måter -
- Den grunnleggende implementeringen er basert på HTMLs "tittel" -attributt. getAttribute (tittel) får verdien av verktøytipsen.
- Andre implementeringer av verktøytips er som JQuery, CSS-verktøytips krever Interactions API for å skape musesvingningseffekt
- Avansert API for brukerinteraksjoner
- moveToElement (element) i handlingsklassen brukes til å holde musepekeren over et element.
- Bygg () -metoden til Handlinger-klassen bygger rekkefølgen av brukerhandlinger til et Action-objekt.
- Perform () of Action-klassen utfører hele rekkefølgen av brukerhandlinger samtidig.
- For å verifisere en verktøytips, må vi først holde musen over elementet, deretter finne elementet som tilsvarer verktøyspissen og få teksten eller andre verdier til å verifisere mot forventede verdier.