implementation our first webdriver script selenium webdriver tutorial 10
U prethodna dva tutorijala upoznali smo vas s osnovnom arhitekturom i značajke WebDrivera i infrastruktura potrebna za početak rada sa Selenium WebDriver . Pod pretpostavkom da ste svi možda postavili sustav sa svim potrebnim uslužnim programima i paketima, krenut ćemo dalje s implementacijom naše prve testne skripte WebDriver.
Stoga, kretanje naprijed s posljedičnim Vodič za selenium WebDriver , mi bismo stvarali WebDriver skriptu. Također bismo rasipali svjetlost na osnovno i najčešće korišteno Naredbe WebDriver . Također bismo naučili o lociranje strategija elemenata korisničkog sučelja i njihovo uključivanje u testne skripte. Također bismo detaljno proučavali Dobivanje naredbi.
Što ćete naučiti:
- Izrada skripte
- Prolaz kroz kôd
- Izvršenje testa
- Lociranje web elemenata
- Vrste lokatora i njihova sintaksa
- Zaključak
- Preporučena literatura
Izrada skripte
Za izradu skripti koristili bismo projekt 'Learning_Selenium' stvoren u prethodnom vodiču i 'gmail.com' kao testnu aplikaciju (AUT).
Scenarij:
- Pokrenite preglednik i otvorite 'Gmail.com'.
- Provjerite naslov stranice i ispišite rezultat provjere.
- Unesite korisničko ime i lozinku.
- Kliknite gumb Prijava.
- Zatvorite web preglednik.
Korak 1: Stvorite novu java klasu nazvanu 'Gmail_Login' u projektu 'Learning_Selenium'.
Korak 2: Kopirajte i zalijepite donji kôd u klasu 'Gmail_Login.java'.
import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.firefox.FirefoxDriver; public class Gmail_Login { /** * @param args */ public static void main(String() args) { // objects and variables instantiation WebDriver driver = new FirefoxDriver(); String appUrl = 'https://accounts.google.com'; // launch the firefox browser and open the application url driver.get(appUrl); // maximize the browser window driver.manage().window().maximize(); // declare and initialize the variable to store the expected title of the webpage. String expectedTitle = ' Sign in - Google Accounts '; // fetch the title of the web page and save it into a string variable String actualTitle = driver.getTitle(); // compare the expected title of the page with the actual title of the page and print the result if (expectedTitle.equals(actualTitle)) { System.out.println('Verification Successful - The correct title is displayed on the web page.'); } else { System.out.println('Verification Failed - An incorrect title is displayed on the web page.'); } // enter a valid username in the email textbox WebElement username = driver.findElement(By.id('Email')); username.clear(); username.sendKeys('TestSelenium'); // enter a valid password in the password textbox WebElement password = driver.findElement(By.id('Passwd')); password.clear(); password.sendKeys('password123'); // click on the Sign in button WebElement SignInButton = driver.findElement(By.id('signIn')); SignInButton.click(); // close the web browser driver.close(); System.out.println('Test script executed successfully.'); // terminate the program System.exit(0); } }
Gornji je kod ekvivalentan tekstualnom scenariju predstavljenom ranije.
Prolaz kroz kôd
Izjave o uvozu:
import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.By;
Prije stvarnog skriptiranja, moramo uvesti gore navedene pakete:
uvoz org.openqa.selenium.WebDriver - referencira se na sučelje WebDriver koje je potrebno za instanciju novog web preglednika.
uvoz org.openqa.selenium.firefox.FirefoxDriver - Upućuje na klasu FirefoxDriver koja je potrebna za instanciranje upravljačkog programa specifičnog za Firefox na instanci preglednika instanciranom pomoću sučelja WebDriver.
uvoz org.openqa.selenium.WebElement - reference na klasu WebElement koja je potrebna za instanciranje novog web elementa.
uvoz org.openqa.selenium.By - Reference na klasu By na kojoj se poziva tip lokatora.
Kako i kada će naš projekt rasti, očito je i logično da ćemo možda morati uvesti nekoliko drugih paketa za složenije i različite funkcionalnosti poput excel manipulacija, povezivanja s bazom podataka, bilježenje, tvrdnje itd.
najbolja ideja za python za Windows 10
Instantiranje objekta
Upravljački program za WebDriver = novi FirefoxDriver ();
Stvaramo referentnu varijablu za WebDriver sučelje i izrađujemo je pomoću klase FirefoxDriver. Pokrenut će se zadani profil Firefoxa, što znači da nijedna proširenja i dodaci ne bi bili učitani s instancom Firefox i da se izvodi u sigurnom načinu.
Pokretanje web preglednika
driver.get (appUrl);
DO dobiti() metoda se poziva na instanci WebDriver za pokretanje nove instance web preglednika. Niz znakovnih nizova prosljeđen kao parametar u dobiti() metoda preusmjerava pokrenutu instancu web preglednika na URL aplikacije.
Povećajte prozor preglednika
driver.manage (). window (). maximize ();
The maksimizirati () metoda koristi se za maksimiziranje prozora preglednika ubrzo nakon što je preusmjeren na URL aplikacije.
Dohvati naslov stranice
driver.getTitle ();
The getTitle () metoda koristi se za dohvaćanje naslova trenutne web stranice. Dakle, dohvaćeni naslov može se učitati u varijablu niza.
Usporedba očekivanih i stvarnih vrijednosti:
kako igrati swf datoteke na Windowsima -
if (expectedTitle.equals(actualTitle)) { System.out.println('Verification Successful - The correct title is displayed on the web page.'); } else { System.out.println('Verification Failed - An incorrect title is displayed on the web page.'); }
Gornji kod koristi java konstrukcije uvjetnog izraza za usporedbu stvarne vrijednosti i očekivane vrijednosti. Na temelju dobivenog rezultata izvršit će se ispis.
WebElement instantacija
WebElement korisničko ime = driver.findElement (By.id ('E-pošta'));
U gornjoj izjavi instanciramo referencu WebElement uz pomoć 'Driver.findElement (By.id (' Email '))'. Dakle, korisničko ime može se koristiti za referencu na okvir za tekst e-pošte na korisničkom sučelju svaki put kada želimo izvršiti neku radnju na njemu.
Jasna naredba
korisničko ime.clear ();
Metoda / naredba clear () koristi se za brisanje vrijednosti prisutne u okviru za tekst ako postoji. Također briše zadanu vrijednost rezerviranog mjesta.
naredba sendKeys
username.sendKeys („TestSelenium“);
The sendKeys () metoda / naredba koristi se za unos / upisivanje navedene vrijednosti (unutar zagrada) u okvir za tekst. Primijetite da sendKeys () metoda se poziva na objektu WebElement koji je instanciran uz pomoć svojstva elementa koje odgovara elementu korisničkog sučelja.
Gornji blok koda unosi niz 'TestSelenium' unutar okvira za tekst e-pošte u aplikaciji Gmail.
sendKeys jedna je od najpopularnijih naredbi u skriptama WebDriver.
Pritisnite Command
SignInButton.click ();
Kao sendKeys (), kliknite () je još jedna pretjerano korištena naredba za interakciju s web elementima. Klik() naredba / metoda koristi se za klik na web element koji je prisutan na web stranici.
Gornji blok koda klikće na gumb 'Prijavi se' koji je prisutan u aplikaciji Gmail.
Bilješke:
što je grep naredba u unixu
- Za razliku od metode sendKeys (), metode click () nikada se ne mogu parametrizirati.
- Ponekad klik na web-element može potpuno učitati novu stranicu. Dakle, da bi se održali takvi slučajevi, metoda click () kodirana je na način da pričeka dok se stranica ne učita.
Zatvorite web preglednik
driver.close ();
Close () koristi se za zatvaranje trenutnog prozora preglednika.
Prekini Java program
System.exit (0);
Metoda Exit () prisilno prekida Java program. Stoga, ne zaboravite zatvoriti sve instance preglednika prije prekida Java programa.
Izvršenje testa
Testna skripta ili jednostavno Java program mogu se izvršiti na sljedeće načine:
# 1. Ispod trake izbornika Eclipsea nalazi se ikona za izvršavanje testne skripte. Pogledajte sljedeću sliku.
Zabilježite da će se izvršiti samo odabrana klasa.
#dva. Desnom tipkom miša kliknite bilo gdje unutar klase unutar uređivača, odaberite opciju 'Pokreni kao' i kliknite 'Java aplikacija'.
# 3. Još jedan prečac za izvršavanje testne skripte je - Pritisnite ctrl + F11.
Na kraju ciklusa izvršenja, ispis ispisa 'Test skripta uspješno izvršena.' može se naći u konzoli.
Lociranje web elemenata
Web elementi u WebDriveru mogu se locirati i pregledavati na isti način kao što smo to činili u prethodnim vodičima Selenium IDE-a. Selenium IDE i Firebug mogu se koristiti za pregled web elementa na GUI-u. Preporučuje se korištenje Selenium IDE za pronalaženje web elemenata. Nakon što je web element uspješno pronađen, kopirajte i zalijepite ciljanu vrijednost unutar koda WebDriver. Vrste lokatora i strategije lociranja prilično su iste, osim sintakse i njihove primjene.
U WebDriveru web elementi se nalaze uz pomoć dinamičkih pronalazača (findElement (By.locatorType ('vrijednost lokatora')).
Uzorak koda:
driver.findElement (By.id ('E-pošta'));
Vrste lokatora i njihova sintaksa
Tip lokatora | Sintaksa | Opis |
---|---|---|
cssSelector | vozač.nađiElement (By.cssSelector ('CSS Selector')) | Pronađi prema vrijednosti CSS selektor |
iskaznica | vozač.nađiElement (By.id ('ID_elementa')) | Pronađi prema vrijednosti atribut 'id' |
className | vozač.nađiElement (Od.className ('Razred_elementa')) | Pronađi prema vrijednosti atribut 'klasa' |
linkText | vozač.nađiElement (By.linkText ('Tekst')) | Pronađi po vrijednosti tekst hiperveze |
djelomičniLinkText | vozač.nađiElement (By.partialLinkText ('Djelomični tekst')) | Pronađi po vrijednosti podtekst hiperveze |
Ime | vozač.nađiElement (Imenom ('Ime_elementa')) | Pronađi po vrijednosti Atribut 'ime' |
xpath | vozač.nađiElement (By.xpath ('Xpath')) | Locirati prema vrijednosti xpath-a |
tagName | vozač.nađiElement (By.tagName ('input')) | Pronađi prema vrijednosti naziv njegove oznake |
Zaključak
U ovom smo tutorijalu razvili skriptu za automatizaciju pomoću WebDrivera i Jave. Također smo razgovarali o različitim komponentama koje čine skriptu WebDriver.
Evo suština ovog vodiča za Selenium WebDriver:
- Prije stvarnog skriptiranja, moramo uvesti nekoliko paketa kako bismo mogli stvoriti WebDriver skriptu.
- uvoz openqa.selenium.By;
- uvoz openqa.selenium.WebDriver;
- uvoz openqa.selenium.WebElement;
- uvoz openqa.selenium.firefox.FirefoxDriver;
- DO dobiti() metoda koja se koristi za pokretanje nove instance web preglednika. Slijed znakova prosljeđen kao parametar u metodu get () preusmjerava pokrenutu instancu web preglednika na URL aplikacije.
- The maksimizirati () metoda koristi se za maksimiziranje prozora preglednika.
- The čisto() metoda koristi se za brisanje vrijednosti prisutne u okviru za tekst ako postoji.
- The sendKeys () metoda koristi se za unos navedene vrijednosti u okvir za tekst.
- Klik() metoda koristi se za klik na web element koji je prisutan na web stranici.
- U WebDriveru se web elementi mogu locirati pomoću dinamičkih pretraživača.
- Sljedeće su dostupne vrste lokatora:
- iskaznica
- className
- Ime
- xpath
- cssSelector
- linkText
- djelomičniLinkText
- tagName
Krećući se naprijed, u sljedećem uputstvu preusmjerili bismo fokus na okvir koji pomaže automatizacijskom testiranju poznatom kao TestNG. Imali bismo detaljnu studiju o raznim vrstama bilješki koje pruža okvir.
Sljedeći vodič # 11 : Prije zaranja duboko u Frameworks vidjet ćemo detalje o JUnit-u - alatu za testiranje jedinica otvorenog koda. Većina programera koristi JUnit jer je jednostavan i ne treba puno truda za testiranje. Ovaj će vodič dati uvid u JUnit i njegovu upotrebu u skripti selena.
Napomena za čitatelje: Dok je naš sljedeći vodič iz serije Selenium u načinu obrade, čitatelji mogu početi stvarati vlastite osnovne WebDriver skripte. Za više unaprijed skripti i koncepata, u ovoj ćemo seriji naći razne druge vodiče za Selenium WebDriver.
Obavijestite nas u komentarima ako imate problema sa stvaranjem ili izvršavanjem skripti WebDriver.
Preporučena literatura
- Uvod u Selenium WebDriver - Vodič za selen br. 8
- Vodič za selenij krastavaca: Integracija Java Selenium WebDriver za krastavac
- Cjelokupno postavljanje i instaliranje WebDriver-a s Eclipseom - Selen Tutorial # 9
- Provjerite vidljivost web elemenata pomoću različitih vrsta naredbi WebDriver - Vodič za selenij # 14
- Učinkoviti scenariji za skriptiranje i rješavanje problema sa selenom - Vodič za selenij br. 27
- Kako postupati s upozorenjima / skočnim prozorima u Selenium WebDriver - Vodič za selen # 16
- Otklanjanje pogrešaka u skriptama za selen sa zapisnicima (Vodič za Log4j) - Vodič za selen # 26
- Uvod u JUnit Framework i njegovu upotrebu u skripti za selenij - Vodič za selen br. 11