Sådan verificeres værktøjstip ved hjælp af Selenium WebDriver

Indholdsfortegnelse:

Anonim

Værktøjstip i selen

Et værktøjstip i selen er en tekst, der vises, når en mus svæver over et objekt på en webside. Objektet kan være et link, et billede, en knap, et tekstområde osv. Teksttipsteksten giver ofte flere oplysninger om det objekt, som brugeren svæver over musemarkøren.

Værktøjstip blev traditionelt implementeret som en 'titel' attribut til et element. Værdien af ​​denne attribut blev vist som et værktøjstip på musen. Dette er en statisk tekst, der giver information om elementet uden styling.

Nu er der mange plugins tilgængelige til implementering af 'værktøjstips'. Avancerede værktøjstip med styling, gengivelse, billeder og links implementeres ved hjælp af JavaScript / JQuery-plugins eller ved hjælp af CSS Tooltips.

  • For at få adgang til eller verificere de statiske værktøjstip, der implementeres ved hjælp af HTML "title" -attributten, kan vi blot bruge getAttribute ("title") -metoden i WebElement. Den returnerede værdi af denne metode (som er værktøjstipsteksten) sammenlignes med en forventet værdi til verifikation.
  • For andre former for implementeringer af værktøjstip bliver vi nødt til at bruge "Advanced User Interactions API", der leveres af webdriveren, til at oprette musens svæveeffekt og derefter hente værktøjstip til elementet.

En kort beskrivelse af Advanced User Interactions API:

Advanced User Interactions API leverer API'en til brugerhandlinger som træk og slip, svævning, multivalg, tastetryk og slip og andre handlinger ved hjælp af tastatur eller mus på en webside.

Du kan se dette link for at få flere oplysninger om API'en.

https://seleniumhq.github.io/selenium/docs/api/java/index.html?org/openqa/selenium/interactions/Actions.html

Lad os her se, hvordan vi bruger et par klasser og metoder, som vi har brug for for at flytte et skyderelement med en forskydning.

Trin 1) For at kunne bruge API'en skal følgende pakker / klasser importeres:

Trin 2) Opret et objekt i klassen "Handlinger" og opret rækkefølgen af ​​brugerhandlinger. Handlingsklasse bruges til at oprette rækkefølgen af ​​brugerhandlinger som moveToElement (), dragAndDrop () osv. Forskellige metoder relateret til brugerhandlinger leveres af API.

Driverobjektet leveres som en parameter til dets konstruktør.

Trin 3) Opret et handlingsobjekt ved hjælp af build () -metoden i klassen "Handlinger". Kald metoden perform () for at udføre alle de handlinger, der er bygget af handlingsobjektet (bygherre her).

Vi har set, hvordan man bruger nogle af brugerhandlingsmetoderne fra API - clickAndHold (element), moveByOffset (10,0), release (). API'en giver mange sådanne metoder.

Se linket for flere detaljer.

Sådan får du værktøjstiptekst i Selenium Webdriver

Lad os se demonstrationen af ​​adgang til og verificering af værktøjstip i det enkle scenario

  • Scenarie 1: Værktøjstip implementeres ved hjælp af attributten "title"
  • Scenarie 2: Værktøjstip implementeres ved hjælp af et jQuery-plugin.

Scenarie 1: HTML 'titel' attribut

Lad os i dette tilfælde tage eksemplets websted - http://demo.guru99.com/test/social-icon.html.

Vi forsøger at bekræfte værktøjstip for "github" -ikonet øverst til højre på siden.

For at gøre det finder vi først elementet og får dets 'titel' attribut og bekræfter med den forventede værktøjstipstekst.

Da vi antager, at værktøjstip er i "title" -attributten, automatiserer vi ikke engang musens svæveeffekt, men simpelthen henter attributets værdi ved hjælp af "getAttribute ()" -metoden.

Her er koden

importer org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.selenium.chrome.ChromeDriver;import org.openqa.selenium. *;værktøjstip til 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);Streng forventetTooltip = "Github";// Find Github-ikonet øverst til højre i overskriftenWebElement github = driver.findElement (By.xpath (".//* ** @ class = 'soc-ico show-round'] / a [4]"));// få værdien af ​​"title" -attributten for github-ikonetStreng actualTooltip = github.getAttribute ("titel");// Påstå, at værktøjstipens værdi er som forventetSystem.out.println ("Faktisk titel på værktøjstip" + faktisk værktøjstip);hvis (actualTooltip.equals (expectTooltip)) {System.out.println ("Test Case Passed");}driver.close ();}}

Forklaring af kode

  1. Find WebElement, der repræsenterer ikonet "github".
  2. Hent dets "titel" -attribut ved hjælp af getAttribute () -metoden.
  3. Gør værdien mod den forventede værktøjstipværdi.

Scenarie 2: JQuery-plugin:

Der er mange JQuery-plugins til rådighed til implementering af værktøjstip, og hver enkelt har en lidt anden form for implementering.

Nogle plugins forventer, at HTML-værktøjstip altid er til stede ved siden af ​​det element, som tooltip'en gælder for, mens de andre skaber et dynamisk "div" -tag, der vises med det samme, mens de svæver over elementet.

Lad os overveje "jQuery Tools Tooltip" -måden til implementering af tooltip til vores demonstration.

Her i URL'en - http://demo.guru99.com/test/tooltip.html kan du se demoen, hvor musen svæver over "Download nu", vi får et avanceret værktøjstip med et billede, billedbaggrund, en tabel og et link inde i det, der er klikbart.

Hvis du ser på kilden nedenfor, kan du se, at div-tagget, der repræsenterer værktøjstip, altid er til stede ved siden af ​​"Download nu" -linkets tag. Men koden inde i script-koden nedenfor styrer, hvornår den skal pop op.

Lad os prøve at bekræfte blot linkteksten i værktøjstip til vores demonstration her.

Vi finder først WebElement svarende til "Download nu". Derefter bevæger vi os til elementet (mus-svæver) ved hjælp af Interactions API. Dernæst finder vi WebElement, der svarer til linket inde i det viste værktøjstip, og verificerer det mod den forventede tekst.

Her er koden

import org.openqa.selenium.interactions.Action;import org.openqa.selenium.interactions.Action;importer org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.selenium.chrome.ChromeDriver;import 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 = "Nyheder i 3.2";driver.get (baseUrl);WebElement download = driver.findElement (By.xpath (".//* ** @ id = 'download_now']"));Handlingsbygger = ny handling (driver);builder.clickAndHold (). moveToElement (download);builder.moveToElement (download) .build (). perform ();WebElement toolTipElement = driver.findElement (By.xpath (".//* ** @ class = 'box'] / div / a"));Streng actualTooltip = toolTipElement.getText ();System.out.println ("Faktisk titel på værktøjstip" + faktisk værktøjstip);hvis (actualTooltip.equals (expectTooltip)) {System.out.println ("Test Case Passed");}driver.close ();}}

Kode Forklaring

  1. Find det WebElement, der svarer til elementet "download nu", som vi vil holde musen over.
  2. Brug Interactions API til at holde musen på "Download nu".
  3. Forudsat at værktøjstip vises, skal du finde det WebElement, der svarer til linket inde i værktøjstip, dvs. "a" -tagget.
  4. Bekræft linkets værktøjstipstekst hentet ved hjælp af getText () mod en forventet værdi, som vi har gemt i "expectToolTip"

Resumé:

I denne vejledning har du lært, hvordan du får adgang til værktøjstip ved hjælp af Selenium Web-driver.

  • Værktøjstip implementeres på forskellige måder -
    • Den grundlæggende implementering er baseret på HTML's "title" -attribut. getAttribute (titel) får værdien af ​​værktøjstip.
    • Andre implementering af værktøjstip som JQuery, CSS-værktøjstip kræver Interactions API for at skabe musesvingningseffekt
  • API til avanceret brugerinteraktion
    • moveToElement (element) i handlingsklassen bruges til at holde musen over et element.
    • Build () -metoden i klasse Handlinger bygger rækkefølgen af ​​brugerhandlinger til et handlingsobjekt.
    • Perform () af Action-klasse udfører hele rækkefølgen af ​​brugerhandlinger på én gang.
  • For at verificere et værktøjstip skal vi først holde musen over elementet og derefter finde det element, der svarer til værktøjstipset, og få dets tekst eller andre værdier til at kontrollere mod de forventede værdier.