0% found this document useful (0 votes)
10 views

QA Automation - 03

This document discusses Selenium and locators used for automated testing of web applications. It covers common locator types like ID, Name, ClassName, CssSelector, XPath and provides examples. It also describes Selenium WebDriver commands for controlling the browser, like navigating to URLs, refreshing pages, maximizing windows.

Uploaded by

predragendava
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
10 views

QA Automation - 03

This document discusses Selenium and locators used for automated testing of web applications. It covers common locator types like ID, Name, ClassName, CssSelector, XPath and provides examples. It also describes Selenium WebDriver commands for controlling the browser, like navigating to URLs, refreshing pages, maximizing windows.

Uploaded by

predragendava
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 14

QA Automation

- Selenium -
Developer tools

Koristimo ga kako bismo pogledali HTML i kako bismo locirali


elemente
Otvaramo ih klikom na dugme F12 ili desni klik -> Inspect
Najčešći lokatori koje koristimo za pronalaženje elemenata:
Id
Name
ClassName
CssSelector
LinkText
Xpath
Lokatori

Id:
Ima prioritet
Jedinstveno identifikuje element (najverovatnije)
Primer: <input id=“username” type=“text” name=“login” />
Šta ako ima više elementa sa istim Id-jem?
Name:
Drugi na listi prioriteta
Ne moraju biti jedinstveni
Često slični Id-u
Mogu se menjati sa prevodima (sajtovi sa verzijama na više jezika)
Primer: <input id=“username” type=“text” name=“login” />
Lokatori

ClassName
Moze biti jedinstvena
Često se class atribut sastoji od više klasa
Više klasa prepoznajemo po tome što imamo znak space izmedju reči u class
atributu
Tag sa class atributom koji ima više klasa u sebi nazivaju se
compound classes
Ukoliko imamo compound classes obavezno mora da se koristi CssSelector kao
tip lokatora
Primer proste klase: <input class=“rhzReg” maxlength=“123” />
Primer compound klase: <input class=“pkr tRee head” name=“searchbtn” />
Lokatori
CssSelector
Možemo da koristimo uvek ukoliko je jedinstven
Obavezno moramo da koristimo kod compound klasa
Brži je od Xpath-a pa se tako računa “jeftinijim”
Osnovna pravila:
- lociranje web elementa po bilo kom atributu
- lociranje pomocu klase: “.” označava klasu
Primer: <input tab=“firstTab” class=“form triangle” />
CssSelector za po atributu iz primera: input[tab=’firstTab’] ili [tab=’firstTab’]
CssSelector za klasu iz primera: input.form.triangle ili .form.triangle
- Parent → direct child: div>a ← označi element “a” koji je direktni potomak elementa “div”
- Parent → any child: div a ← označi sve elemente “a” koji su unutar elementa “div”
Lokatori

Lociranje elementa prema atributu: div[name=‘some name’]


Lociranje elementa prema vise atributa:
div[name=‘some name’][type=‘text’]
Lociranje child elementa kada imamo vise child elemenata:
body div#someId(2)
Lociranje elementa ciji atribut počinje sa: div[id^=”usern”]
Lociranje elementa ciji atribut završava sa: div[id$=”ame”]
Lociranje elementa ciji atribut sadrži: div[id*=”ernm”]
Lokatori

Xpath:
Koristi putanju da se kreće kroz HTML kako bismo pronasli odredjeni
element
Sporiji od CssSelectora
Nekad je lakse napisati Xpath nego CssSelector
Postoje absolute I relative Xpath
Absolute: daje putanju od html tag-a do elementa
Primer: html/head/body/table/tbody/tr/th
Relative: daje najkraću putanju da se pronadje elemenat
Primer: //table/tbody/tr/th
Lokatori
Relativni Xpath 3 šablona:

Xpath po atributu primeri → //input[@class="gLFyf"] input[@maxlength="2048"]


Xpath po atributu šablon → //imeElementa[@atribut = "vrednostAtributa"]

Xpath po SADRŽANOM tekstu primer→ //div[contains(text(), "Google of")]


Xpath po SADRŽANOM tekstu šablon → //imeElementa[contains(text(),'Sadržani tekst')]

Xpath po TAČNOM tekstu primer → //div[text()= 'Google offered in: ']


Xpath po TAČNOM tekstu šablon → //imeElementa[text()= 'Tacan tekst']
Lokatori
Osnovna pravila za Xpath:
//* - Pronadji bilo gde u HTML-u bilo koji element
//div – Pronadji bilo gde u HTML-u div element
Parent → direct child: div/a
Parent → any child: div//a
Lociranje elementa prema atributu: div[@class=‘some class’]
Lociranje elementa prema vise atributa: div[@name=‘some name’][@type=‘text’]
Lociranje odredjenog elementa kada imamo vise istih elemenata: (div[@class=‘some class’])[2]
Lociranje elementa koji sadrzi odredjeni tekst: div[contains(text(), ‘some text’)]
Lociranje prvog sledeceg sibling elementa: //div[@id=‘username’]/following-sibling::*
Lociranje prvog prethodnog sibling elementa: //div[@id=‘username’]/preceding-sibling::*
Lociranje prvog sledeceg sibling elementa odredjenog tipa: //div(@id=‘user’]/following-sibling::span
Lociranje elementa koristeci vise uslova: //*[@class=‘categories’ and contains ‘France’]
Lokatori
LinkText:
Jako zgodan lokator za lociranje “link” web elemenata , odnosno
takozvanih <a> web elemenata

PartialLinkText:

Slično kao i LinkText lokator , ali se koristi najčešće za lociranje linkova


koji imaju duži tekst, pa se ceo taj tekst skrati na odgovarajuću dužinu.

*u primeru sa slike “go here” i “click here” je ono što se zove link tekst
Selenium WebDriver

Selenium je biblioteka koja sluzi za automatizaciju testiranja web


aplikacija
Podržava dosta browsera (Chrome, Firefox, IE, Safari itd.)
Podržava I razlicite programske jezike (C#, Java, Perl, PHP, Ruby)

WebDriver inicijalizacija:
WebDriver driver = new ChromeDriver();
Selenium komande
Driver komande za rad sa browserom:
Komanda za otvaranje željene internet stranice:
driver.navigate().to(“https://www.google.com”)
driver.get(“https://www.google.com”)
Komanda za odlazak na prethodno posecenu stranicu: driver.navigate().back();
Komanda za odlazak na sledecu posecenu stranicu: driver.navigate().forward();
Komanda za refresh stranice: driver.navigate().refresh();
Komanda za maximizovanje stranice: driver.manage().window().maximize();
Komanda za zatvaranje driver(browsera): driver.quit();
driver.close(); ←zatvara samo trenutni tab
Vezba

Koraci:
Otvoriti Google
Maximizovati prozor
Refreshovati stranicu
Vratiti se nazad
Vratiti se napred
Napraviti After I Before Scenarije
Popuniti generisane korake odgovarajućim Selenium komandama
Pitanja?

You might also like