Ako overiť popis pomocou programu Selenium WebDriver

Obsah:

Anonim

Popis v seléne

Popisek v Selén je text, ktorý sa objaví, keď sa myš pohybuje nad objekt na webovej stránke. Objektom môže byť odkaz, obrázok, tlačidlo, textová oblasť atď. Text popisu nástroja často poskytuje viac informácií o objekte, na ktorom sa používateľ nachádza nad kurzorom myši.

Popisy nástrojov sa tradične implementovali ako atribút „title“ prvku. Hodnota tohto atribútu sa zobrazila ako popis pri umiestnení kurzora myši. Toto je statický text poskytujúci informácie o prvku bez úpravy štýlu.

Teraz je k dispozícii veľa doplnkov na implementáciu „tipov na náradie“. Pokročilé tipy so štýlom, vykresľovaním, obrázkami a odkazmi sa implementujú pomocou doplnkov JavaScript / JQuery alebo pomocou tipov CSS.

  • Na prístup k statickým popisom nástrojov alebo ich overenie implementovaným pomocou atribútu HTML „title“ môžeme jednoducho použiť metódu getAttribute („title“) WebElement. Vrátená hodnota tejto metódy (čo je text popisu) sa porovnáva s očakávanou hodnotou na overenie.
  • Pri iných formách implementácie popisov nástrojov budeme musieť na vytvorenie efektu vznášania myšou použiť „Rozhranie Advanced User Interactions API“ poskytované webovým ovládačom a potom načítať popis prvku.

Stručný prehľad rozhrania API pre pokročilých používateľov:

Rozhranie Advanced User Interactions API poskytuje API pre akcie používateľov, ako je drag and drop, vznášanie sa, výber viacerých položiek, stlačenie a uvoľnenie klávesu a ďalšie akcie pomocou klávesnice alebo myši na webovej stránke.

Tento odkaz môžete získať ďalšie informácie o API.

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

Tu sa pozrime, ako použiť niekoľko tried a metód, ktoré by sme potrebovali na presunutie posuvného prvku o posun.

Krok 1) Aby ste mohli používať API, je potrebné importovať nasledujúce balíčky / triedy:

Krok 2) Vytvorte objekt triedy „Akcie“ a vytvorte postupnosť akcií používateľa. Trieda Akcie sa používa na zostavenie postupnosti akcií používateľa, ako je moveToElement (), dragAndDrop () atď. Rozhranie API poskytuje rôzne metódy týkajúce sa akcií používateľa.

Objekt ovládača je poskytovaný ako parameter svojmu konštruktoru.

Krok 3) Vytvorte akčný objekt pomocou metódy build () triedy „Akcie“. Zavolajte metódu perform () na vykonanie všetkých akcií vytvorených objektom Actions (staviteľ tu).

Videli sme, ako používať niektoré z používateľských metód Action poskytovaných API - clickAndHold (element), moveByOffset (10,0), release (). API poskytuje mnoho takýchto metód.

Ďalšie informácie nájdete v odkaze.

Ako získať text popisu v selenovom webdriveri

Pozrime sa na ukážku prístupu a overenia tipov k nástrojom v jednoduchom scenári

  • Scenár 1: Popis nástroja je implementovaný pomocou atribútu „title“
  • Scenár 2: Popis nástroja je implementovaný pomocou doplnku jQuery.

Scenár 1: Atribút HTML „title“

V tomto prípade si vezmime príkladnú stránku - http://demo.guru99.com/test/social-icon.html.

Pokúsime sa overiť popis ikony „github“ v pravom hornom rohu stránky.

Aby sme to mohli urobiť, najskôr nájdeme prvok a získame jeho atribút „title“ a overíme ho očakávaným textom tipu nástroja.

Pretože predpokladáme, že sa tip nástroja nachádza v atribúte „title“, neautomatizujeme ani efekt vznášania myšou, ale iba načítame hodnotu atribútu pomocou metódy „getAttribute ()“.

Tu je kód

import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.selenium.chrome.ChromeDriver;import org.openqa.selenium. *;tip pre verejnú triedu {public static void main (String [] args) {Reťazec baseUrl = "http://demo.guru99.com/test/social-icon.html";System.setProperty ("webdriver.chrome.driver", "G: \\ chromedriver.exe");Ovládač WebDriver = nový ChromeDriver ();driver.get (baseUrl);Reťazec expectTooltip = "Github";// Nájdite ikonu Github v pravom hornom rohu hlavičkyWebElement github = driver.findElement (By.xpath (".//*[@ class = 'soc-ico show-round'] / a [4]"));// získa hodnotu atribútu „title“ ikony githubReťazec actualTooltip = github.getAttribute ("title");// Tvrdí, že hodnota popisu nástroja je očakávanáSystem.out.println ("Skutočný názov tipu nástroja" + actualTooltip);if (actualTooltip.equals (expectTooltip)) {System.out.println ("Testovací prípad prešiel");}driver.close ();}}

Vysvetlenie kódu

  1. Vyhľadajte WebElement predstavujúci ikonu „github“.
  2. Získajte jeho atribút „title“ pomocou metódy getAttribute ().
  3. Priraďte hodnotu k očakávanej hodnote popisu nástroja.

Scenár 2: Plugin JQuery:

Na implementáciu popisov nástrojov je k dispozícii množstvo doplnkov JQuery a každý z nich má trochu inú formu implementácie.

Niektoré doplnky očakávajú, že popis HTML bude prítomný po celú dobu vedľa prvku, pre ktorý je popis použiteľný, zatiaľ čo iné vytvárajú dynamickú značku „div“, ktorá sa zobrazuje za chodu pri umiestnení kurzora myši na prvok.

Pre našu ukážku zvážme spôsob implementácie tipov „jQuery Tools Tooltip“.

Tu na adrese URL - http://demo.guru99.com/test/tooltip.html môžete vidieť ukážku, kde po umiestnení kurzora myši na položku „Stiahnuť teraz“ dostaneme rozšírený popis s obrázkom, pozadím popisu, tabuľkou a odkaz v ňom, na ktorý je možné kliknúť.

Ak sa pozriete na zdroj nižšie, uvidíte, že značka div predstavujúca popis je vždy prítomná vedľa značky odkazu „Prevziať teraz“. Kód vo vnútri značky skriptu nižšie však určuje, kedy sa musí vyskakovať.

Pokúsme sa tu overiť iba text odkazu v popise našej ukážky.

Najskôr nájdeme WebElement zodpovedajúci príkazu „Stiahnuť teraz“. Potom pomocou rozhrania Interaction API prejdeme k prvku (presunutie myši). Ďalej nájdeme WebElement, ktorý zodpovedá odkazu vo vnútri zobrazeného popisu a overíme ho oproti očakávanému textu.

Tu je kód

importovať org.openqa.selenium.interaction.Action;importovať org.openqa.selenium.interaction.Actions;import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.selenium.chrome.ChromeDriver;import org.openqa.selenium. *;verejná trieda JqueryToolTip {public static void main (String [] args) {Reťazec baseUrl = "http://demo.guru99.com/test/tooltip.html";System.setProperty ("webdriver.chrome.driver", "G: \\ chromedriver.exe");Ovládač WebDriver = nový ChromeDriver ();Reťazec expectTooltip = "Čo je nové v 3.2";driver.get (baseUrl);WebElement download = driver.findElement (By.xpath (".//*[@ id = 'download_now']"));Tvorca akcií = nové akcie (ovládač);builder.clickAndHold (). moveToElement (stiahnutie);builder.moveToElement (na stiahnutie) .build (). perform ();WebElement toolTipElement = driver.findElement (By.xpath (".//*[@ class = 'box'] / div / a"));Reťazec actualTooltip = toolTipElement.getText ();System.out.println ("Skutočný názov tipu nástroja" + actualTooltip);if (actualTooltip.equals (expectTooltip)) {System.out.println ("Testovací prípad prešiel");}driver.close ();}}

Vysvetlenie kódu

  1. Vyhľadajte WebElement, ktorý zodpovedá prvku „prevziať teraz“, na ktorý umiestnime kurzor myši.
  2. Pomocou rozhrania API pre interakcie umiestnite kurzor myši na možnosť „Stiahnuť teraz“.
  3. Za predpokladu, že sa zobrazí popis, nájdite prvok WebElement, ktorý zodpovedá odkazu vo vnútri popisu, tj značku „a“.
  4. Overte text popisu odkazu, ktorý je načítaný pomocou funkcie getText (), oproti očakávanej hodnote, ktorú sme uložili v parametri „expectToolTip“

Zhrnutie:

V tomto tutoriáli ste sa naučili, ako získať prístup k popisom pomocou ovládača Selenium Web.

  • Tipy pre nástroje sa implementujú rôznymi spôsobmi -
    • Základná implementácia je založená na atribúte HTML „title“. getAttribute (title) získa hodnotu popisu.
    • Ďalšie implementácie tipov nástrojov, ako napríklad JQuery a popisy CSS, vyžadujú na vytvorenie efektu vznášania myši rozhranie Interaction API
  • Rozhranie API pre pokročilých používateľov
    • moveToElement (element) z triedy Action sa používa na umiestnenie kurzora myši nad element.
    • Metóda Build () triedy Action zostavuje postupnosť akcií používateľa do objektu Action.
    • Trieda Perform () Action vykoná všetky sekvencie akcií používateľa naraz.
  • Ak chcete overiť popis, musíme najskôr umiestniť kurzor myši na prvok, potom nájsť prvok, ktorý zodpovedá tipu nástroja, a získať jeho text alebo iné hodnoty na overenie oproti očakávaným hodnotám.