Kako preveriti opis orodja s pomočjo programa Selenium WebDriver

Kazalo:

Anonim

Opis orodja v seleniju

Tooltip v Selen je besedilo, ki se prikaže, ko se z miško lebdi nad predmetom na spletni strani. Predmet je lahko povezava, slika, gumb, besedilno območje itd. Besedilo podnapisa pogosto daje več informacij o predmetu, na katerem uporabnik lebdi nad kazalko miške.

Opisi orodij so bili tradicionalno izvajani kot atribut 'title' za element. Vrednost tega atributa je bila prikazana kot namig pri premikanju miške. To je statično besedilo, ki daje informacije o elementu brez stila.

Zdaj je na voljo veliko vtičnikov za izvajanje "nasvetov o orodjih". Napredni namigi za oblikovanje, upodabljanje, slike in povezave se izvajajo z uporabo vtičnikov JavaScript / JQuery ali z uporabo nasvetov CSS.

  • Za dostop ali preverjanje statičnih opisov, ki se izvajajo z uporabo atributa HTML "title", lahko preprosto uporabimo metodo getAttribute ("title") WebElementa. Vrnjena vrednost te metode (to je besedilo opisa) se primerja s pričakovano vrednostjo za preverjanje.
  • Za druge oblike izvedb orodij bomo morali uporabiti "API za napredne uporabniške interakcije", ki ga ponuja spletni gonilnik, da ustvarimo učinek miške in nato pridobimo podstavek za element.

Kratek opis API-ja za napredne uporabniške interakcije:

API za napredne interakcije uporabnika ponuja API za uporabniška dejanja, kot so povleci in spusti, lebdenje, večkratno izbiranje, pritiskanje in spuščanje tipk ter druga dejanja s pomočjo tipkovnice ali miške na spletni strani.

Za več podrobnosti o API-ju lahko preberete to povezavo.

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

Tukaj poglejmo, kako uporabiti nekaj razredov in metod, ki jih potrebujemo za premik drsnega elementa za odmik.

Korak 1) Za uporabo API-ja je treba uvoziti naslednje pakete / razrede:

Korak 2) Ustvarite objekt razreda "Dejanja" in zgradite zaporedje uporabniških dejanj. Razred dejanj se uporablja za izdelavo zaporedja uporabniških dejanj, kot so moveToElement (), dragAndDrop () itd. API ponuja različne metode, povezane z uporabniškimi dejanji.

Vozniški objekt je na voljo kot parameter njegovemu konstruktorju.

Korak 3) Ustvarite objekt dejanja z uporabo metode build () razreda "Action". Pokličite izvedbo (), da izvedete vsa dejanja, ki jih zgradi objekt Dejanja (tukaj je gradnik).

Videli smo, kako uporabiti nekatere metode uporabniških dejanj, ki jih ponuja API - clickAndHold (element), moveByOffset (10,0), release (). API ponuja veliko takih metod.

Za več podrobnosti glejte povezavo.

Kako dobiti besedilo z opisom v programu Selenium Webdriver

Oglejmo si prikaz dostopa in preverjanja nasvetov o orodju v preprostem scenariju

  • Scenarij 1: Opis orodja se izvede z uporabo atributa "title"
  • Scenarij 2: Opis orodja se izvede z vtičnikom jQuery.

Scenarij 1: Atribut »naslov« HTML

V tem primeru si oglejmo primer spletnega mesta - http://demo.guru99.com/test/social-icon.html.

Poskusili bomo preveriti opis orodja ikone "github" v zgornjem desnem kotu strani.

Da bi to storili, bomo najprej našli element in dobili njegov atribut 'title' ter preverili s pričakovanim besedilom nasveta orodja.

Ker domnevamo, da je konica orodja v atributu "title", niti ne avtomatiziramo učinka miške, temveč preprosto pridobimo vrednost atributa z metodo "getAttribute ()".

Tu je koda

uvoz org.openqa.selenium.By;uvoz org.openqa.selenium.WebDriver;uvoz org.openqa.selenium.chrome.ChromeDriver;uvoz org.openqa.selenium. *;javni razred ToolTip {public static void main (String [] args) {String baseUrl = "http://demo.guru99.com/test/social-icon.html";System.setProperty ("webdriver.chrome.driver", "G: \\ chromedriver.exe");Gonilnik WebDriver = nov ChromeDriver ();driver.get (baseUrl);Niz pričakujeTooltip = "Github";// Poiščite ikono Github v zgornjem desnem kotu glaveWebElement github = driver.findElement (By.xpath (".//*[@ class = 'soc-ico show-round'] / a [4]"));// dobimo vrednost atributa "title" ikone githubString actualTooltip = github.getAttribute ("naslov");// Ugotovimo, da je vrednost opisa opisana po pričakovanjihSystem.out.println ("Dejanski naslov nasveta orodja" + dejanskiTooltip);če (dejanskiTooltip.equals (pričakovaniTooltip)) {System.out.println ("Test Test Passsed");}driver.close ();}}

Pojasnilo kode

  1. Poiščite WebElement, ki predstavlja ikono "github".
  2. Pridobite njegov atribut "title" z uporabo metode getAttribute ().
  3. Ugotovite vrednost glede na pričakovano vrednost opisa.

Scenarij 2: Vtičnik JQuery:

Za izvajanje opisov orodij je na voljo veliko vtičnikov JQuery, vsak pa ima nekoliko drugačno obliko izvedbe.

Nekateri vtičniki pričakujejo, da bo opis orodja HTML ves čas prisoten poleg elementa, za katerega je uporabljen opis orodja, drugi pa ustvarijo dinamično oznako "div", ki se sproti prikaže med lebdenjem nad elementom.

Za predstavitev si oglejmo način izvajanja podnapisov »jQuery Tools Tooltip«.

Tukaj v URL-ju - http://demo.guru99.com/test/tooltip.html si lahko ogledate predstavitev, kjer ob premikanju miške nad "Prenesi zdaj" dobimo napreden opis s sliko, ozadjem oblačka, tabelo in povezava v njej, ki jo je mogoče klikniti.

Če pogledate spodnji vir, lahko vidite, da je oznaka div, ki predstavlja opis orodja, vedno prisotna poleg oznake povezave »Prenesi zdaj«. Toda koda znotraj spodnje oznake skripta nadzoruje, kdaj se mora pojaviti.

Poskusimo preveriti samo besedilo povezave v nasvetu za naš demonstracijski prikaz tukaj.

Najprej bomo našli WebElement, ki ustreza "Prenesite zdaj". Nato se bomo z uporabo API-ja za interakcije premaknili na element (miško premaknite). Nato bomo našli WebElement, ki ustreza povezavi znotraj prikazanega podstavka, in ga preverili glede na pričakovano besedilo.

Tu je koda

uvoz org.openqa.selenium.interactions.Action;uvoz org.openqa.selenium.interactions.Actions;uvoz org.openqa.selenium.By;uvoz org.openqa.selenium.WebDriver;uvoz org.openqa.selenium.chrome.ChromeDriver;uvoz org.openqa.selenium. *;javni razred JqueryToolTip {public static void main (String [] args) {String baseUrl = "http://demo.guru99.com/test/tooltip.html";System.setProperty ("webdriver.chrome.driver", "G: \\ chromedriver.exe");Gonilnik WebDriver = nov ChromeDriver ();String očekujeTooltip = "Kaj je novega v 3.2";driver.get (baseUrl);WebElement download = driver.findElement (By.xpath (".//*[@ id = 'download_now']"));Graditelj dejanj = nova dejanja (gonilnik);builder.clickAndHold (). moveToElement (prenos);builder.moveToElement (prenos) .build (). izvedba ();WebElement toolTipElement = driver.findElement (By.xpath (".//*[@ class = 'box'] / div / a"));String actualTooltip = toolTipElement.getText ();System.out.println ("Dejanski naslov nasveta orodja" + dejanskiTooltip);če (dejanskiTooltip.equals (pričakovaniTooltip)) {System.out.println ("Test Test Passsed");}driver.close ();}}

Razlaga kode

  1. Poiščite WebElement, ki ustreza elementu "prenesi zdaj", na katerega bomo miško premaknili.
  2. Z API-jem za interakcije premaknite miškin kazalec na "Prenesi zdaj".
  3. Ob predpostavki, da je prikazan opis, poiščite WebElement, ki ustreza povezavi v opisu, tj. Oznaki "a".
  4. Preverite besedilo v opisu povezave, pridobljeno s pomočjo getText (), glede na pričakovano vrednost, ki smo jo shranili v "очакваniToolTip"

Povzetek:

V tej vadnici ste se naučili dostopati do nasvetov orodij z uporabo spletnega gonilnika Selenium.

  • Nasveti za orodja se izvajajo na različne načine -
    • Osnovna izvedba temelji na atributu HTML "title". getAttribute (title) dobi vrednost opisa.
    • Druge izvedbe nasvetov orodij, kot so JQuery, namigi CSS zahtevajo API za interakcije, da ustvarijo učinek lebdenja miške
  • API za napredne uporabniške interakcije
    • moveToElement (element) razreda Dejanja se uporablja za premikanje miške nad elementom.
    • Metoda Build () razreda Action gradi zaporedje uporabniških dejanj v objekt Action.
    • Razred Perform () razreda Action izvede hkrati vse zaporedje uporabniških dejanj.
  • Če želite preveriti opis orodja, moramo najprej premakniti miškin kazalec na element, nato poiskati element, ki ustreza nasvetu orodja, in pridobiti njegovo besedilo ali druge vrednosti za preverjanje glede na pričakovane vrednosti.