Lokátory v Selenium WebDriver

Lokátory v Selenium WebDriver
MIN
24 nov 2023

V tomto článku budeme pokračovať v našom Selenium tutoriály a preštudujeme si rôzne typy lokátorov, ktoré sú v Selenium k dispozícii. Pred štúdiom lokátorov si najprv priblížime potrebu lokátorov v procese automatizácie.

Jednoduchý proces automatizácie v programe Selenium možno predstaviť ako:

  • Spustenie prehliadača.
  • Otvorenie požadovanej webovej stránky, ktorá sa má automatizovať.
  • Lokalizácia webových prvkov, ako je textové pole.
  • Vykonanie operácií s webovými prvkami, ako je napríklad zápis do textového poľa.
  • Vykonanie tvrdení, ako je správa „Success“.

Pozrime si ukážku kódu implementujúcu vyššie uvedený proces. Jednotlivé riadky kódu budeme študovať v nasledujúcom texte.

Obsah

Ukážka kódu pre lokátory v Selenium WebDriver

//Launching Firefox browser

WebDriver driver = new FirefoxDriver();

//Opening google.com

driver.get(„http://www.google.com“);

//Initializing webelement searchBox

WebElement searchBox = driver.findElement(By.name(„q“));

//Writing a text „ITtester“ in the search box

searchBox.sendKeys(„ITtester“);

Tu teda vidíme, že ak chceme vykonať operáciu na webovom prvku – searchBox, musíme ho najprv lokalizovať. Tu je By.name(„q“) lokátor, ktorý po odovzdaní metóde findElement vráti webový prvok searchBox.

Skôr ako sa budeme ďalej zaoberať rôznymi typmi lokátorov, ktoré sú k dispozícii v programe Selenium, pozrime sa najprv, ako získať rôzne atribúty prvku, ktoré sa používajú v lokátoroch.

Použitie nástroja Developer Tool

Lokalizácia webových prvkov si vyžaduje znalosť ich atribútov HTML. Na získanie zdrojového kódu HTML konkrétnych prvkov môžeme použiť vstavaný vývojársky nástroj (spustí sa stlačením klávesu f12 v prehliadači alebo Shift+Ctrl+I).

Kroky na vyhľadanie atribútov HTML prvku:

  • Spustite webovú stránku, ktorá sa má automatizovať, napr. https://www.google.com
  • Stlačením klávesy F12 (alebo Shift+Ctrl+I) spustite nástroj pre vývojárov.
  • Kliknite na ikonu inspect-element, ako je zobrazené na obrázku nižšie.
Screenshot otvoreného developer toolu v prehliadači
Používanie Developer Toolu je efektívny a praktický nástroj na opravu či kontrolu webových prvkov.

Po kliknutí na ikonu inspect-element kliknite na webový prvok, ktorý chcete lokalizovať, napr. vyhľadávacie pole Google. Po kliknutí na prvok sa jeho HTML zobrazí v používateľskom rozhraní Firebug.

Screenshot otvoreného Developer Toolu v prehliadači
Jednoduché rozhranie Developer Toolu, Vám zobrazí dôležité atribúty a hodnoty.

Tu môžeme vidieť rôzne atribúty webových prvkov, ako sú id, type, role a podobne, spolu s ich značkami, ako sú input, div atď. Teraz budeme tieto značky, atribúty a hodnoty používať na vyhľadávanie prvkov pomocou rôznych lokátorov.

Lokátory Selenium

V aplikácii Selenium WebDriver je celkovo 8 lokátorov:

  1. By Id – Lokalizuje prvok pomocou atribútu id webového prvku.

WebElement element = driver.findElement(By.id(„elementId“));

  1. By className – vyhľadá webový prvok pomocou atribútu className.

WebElement element = driver.findElement(By.className(„objectClass“));

  1. By tagName – Vyhľadá webový prvok pomocou jeho značky HTML, napríklad div, a, input atď.

WebElement element = driver.findElement(By.tagName(„a“));

  1. By name – vyhľadá webový prvok pomocou atribútu name.

WebElement element = driver.findElement(By.name(„male“));

  1. By linkText – Vyhľadá webový prvok typu odkaz pomocou jeho textu.

WebElement element = driver.findElement(By.linkText(„Click Here“));

  1. By partialLinkText – Vyhľadá webový prvok typu odkazu s čiastočnou zhodou textu.

WebElement element = driver.findElement(By.partialLinkText(„Click“));

  1. By cssSelector – Vyhľadá webový prvok pomocou CSS.

WebElement element = driver.findElement(By.cssSelector(„div#id“));

  1. Podľa XPath – Vyhľadá webový prvok pomocou jeho XPath.

WebElement element = driver.findElement(By.xpath(„//div[@id=’id‘]“));

Teraz ste sa úspešne naučili lokalizovať prvky v programe Selenium. Ako vidíte, lokalizovanie prvkov podľa id, className, tagName, name, linkText a partialLinkText je jednoduché.

Musíme len vybrať správny lokátor na základe jedinečnosti prvku, napr. uprednostňujeme použitie id, pretože id prvkov je vo všeobecnosti jedinečné. Môžu však nastať scenáre, v ktorých nemusíme mať atribúty id webových prvkov a tiež iné lokátory, ako napríklad name a className, nemusia načítať jedinečný požadovaný webový prvok. V takýchto prípadoch by sme mali použiť selektory CSS a lokátory XPath.

Tieto lokátory sú veľmi výkonné a pomáhajú vytvárať robustné lokátory pre zložité webové prvky.