implementation our first webdriver script selenium webdriver tutorial 10
I de to foregående tutorials gjorde vi dig bekendt med den grundlæggende arkitektur og funktioner i WebDriver og infrastruktur, der kræves for at komme i gang med Selenium WebDriver . Forudsat at du alle muligvis har konfigureret systemet med alle de nødvendige hjælpeprogrammer og pakker, vi vil komme videre med implementeringen af vores første WebDriver test script.
Derfor bevæger sig fremad med det deraf følgende Selen WebDriver-vejledning , opretter vi WebDriver-script. Vi spreder også lyset på det grundlæggende og almindeligt anvendte WebDriver-kommandoer . Vi ville også lære om lokaliseringsstrategier for UI-elementer og deres optagelse i testskripterne. Vi ville også studere Get Commands i detaljerne.
Hvad du vil lære:
- Oprettelse af script
- Kode gennemgang
- Testudførelse
- Find webelementer
- Locatortyper og deres syntaks
- Konklusion
- Anbefalet læsning
Oprettelse af script
Til oprettelse af script bruger vi “Learning_Selenium” -projektet oprettet i den foregående tutorial og “gmail.com” som applikationen under test (AUT).
Scenarie:
- Start browseren, og åbn 'Gmail.com'.
- Bekræft sidens titel og udskriv bekræftelsesresultatet.
- Indtast brugernavn og adgangskode.
- Klik på knappen Log ind.
- Luk webbrowseren.
Trin 1: Opret en ny java-klasse med navnet “Gmail_Login” under “Learning_Selenium” -projektet.
Trin 2: Kopier og indsæt nedenstående kode i klassen '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); } }
Ovenstående kode svarer til det tekstscenarie, der blev præsenteret tidligere.
Kode gennemgang
Importerklæringer:
import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.By;
Før den faktiske scripting skal vi importere ovenstående pakker:
importere org.openqa.selenium.WebDriver - Henviser til WebDriver-grænsefladen, der kræves for at starte en ny webbrowser.
importere org.openqa.selenium.firefox.FirefoxDriver - Henviser til den FirefoxDriver-klasse, der kræves, instantere en Firefox-specifik driver på browserinstansen, der er instantieret ved hjælp af WebDriver-interface.
importere org.openqa.selenium.WebElement - Henvisninger til WebElement-klassen, som kræves for at starte et nyt webelement.
importere org.openqa.selenium.By - Henvisninger til klassen By, som en lokalitetstype kaldes til.
Når og når vores projekt vil vokse, er det tydeligt og logisk, at vi måske bliver nødt til at introducere flere andre pakker til mere komplekse og særskilte funktioner som excelmanipulationer, databaseforbindelse, logning, påstande osv.
hvordan skriver man testcases?
Objekt Instantiering
WebDriver-driver = ny FirefoxDriver ();
Vi opretter en referencevariabel til WebDriver-grænsefladen og instantierer den ved hjælp af FirefoxDriver-klassen. En standard Firefox-profil vil blive lanceret, hvilket betyder, at der ikke indlæses nogen udvidelser og plugins med Firefox-instansen, og at den kører i sikker tilstand.
Start af webbrowseren
driver.get (appUrl);
TIL få() metode kaldes på WebDriver-forekomsten for at starte en ny webbrowser-forekomst. Strengtegnsekvensen blev sendt som en parameter i få() metoden omdirigerer den lancerede webbrowserinstans til applikations-URL'en.
Maksimer browservindue
driver.manage (). vindue (). maksimere ();
Det maksimere () metoden bruges til at maksimere browservinduet kort efter, at det er omdirigeret til applikations-URL'en.
Hent sidens titel
driver.getTitle ();
Det getTitle () metode bruges til at hente titlen på den aktuelle webside. Således kan den hentede titel indlæses i en strengvariabel.
eksempler på c ++ programmer, der bruger funktioner
Sammenligning mellem forventede og faktiske værdier:
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.'); }
Ovenstående kode bruger den betingede erklæring, java-konstruktioner til at sammenligne den faktiske værdi og den forventede værdi. Baseret på det opnåede resultat vil udskriftserklæringen blive udført.
WebElement Instantiering
WebElement brugernavn = driver.findElement (By.id (“E-mail”));
I ovenstående erklæring instantierer vi WebElement-referencen ved hjælp af “Driver.findElement (By.id (“ E-mail ”))“. Således kan brugernavn bruges til at henvise til tekstfeltet E-mail på brugergrænsefladen, hver gang vi vil udføre en handling på den.
Ryd kommando
brugernavn.klar ();
Den klare () metode / kommando bruges til at rydde den værdi, der findes i tekstboksen, hvis nogen. Det rydder også standardværdien for pladsholder.
sendKeys-kommando
brugernavn.sendKeys (“TestSelenium”);
Det sendKeys () metode / kommando bruges til at indtaste / skrive den angivne værdi (inden for parenteserne) i tekstboksen. Bemærk, at sendKeys () Metoden kaldes på WebElement-objektet, som blev instantificeret ved hjælp af elementegenskab svarende til UI-elementet.
Ovenstående kodeblok indtaster strengen 'TestSelenium' inde i e-mail-tekstfeltet i Gmail-applikationen.
sendKeys er en af de mest populære kommandoer på tværs af WebDriver-scripts.
Klik på Kommando
SignInButton.click ();
Synes godt om sendKeys (), klik () er en anden overdrevent brugt kommando til at interagere med webelementerne. Klik på () kommando / metode bruges til at klikke på det webelement, der findes på websiden.
Ovenstående kodeblok klikker på knappen 'Log ind', der findes i Gmail-applikationen.
Bemærkninger:
- I modsætning til sendKeys () -metoden kan klik () -metoder aldrig parametriseres.
- Til tider kan klik på et webelement indlæse en ny side helt. For at opretholde sådanne sager skal klik () -metoden kodes på en måde for at vente, indtil siden indlæses.
Luk webbrowseren
driver.close ();
Luk () bruges til at lukke det aktuelle browservindue.
Afslut Java-programmet
System.exit (0);
Metoden Exit () afslutter Java-programmet med kraft. Husk således at lukke alle browserforekomster, før Java-programmet afsluttes.
Testudførelse
Test scriptet eller blot java-programmet kan udføres på følgende måder:
# 1. Under Eclipse's menulinje er der et ikon til at udføre test scriptet. Se følgende figur.
Skriv en note, at kun den klasse, der er valgt, vil blive udført.
#to. Højreklik et vilkårligt sted inden for klassen i editoren, vælg 'Kør som' og klik på 'Java-applikationen'.
# 3. En anden genvej til at udføre test scriptet er - Tryk på ctrl + F11.
Ved afslutningen af eksekveringscyklussen udskriftserklæringen 'Test script udført med succes.' kan findes i konsollen.
Find webelementer
Webelementer i WebDriver kan findes og inspiceres på samme måde som vi gjorde i de foregående tutorials af Selen IDE. Selen IDE og Firebug kan bruges til at inspicere webelementet på GUI'en. Det anbefales stærkt at bruge Selen IDE til at finde webelementerne. Når webelementet er fundet, skal du kopiere og indsætte målværdien i WebDriver-koden. Typerne af lokaliseringer og lokaliseringsstrategier er stort set de samme bortset fra syntaksen og deres anvendelse.
I WebDriver er webelementer placeret ved hjælp af de dynamiske findere (findElement (By.locatorType (“locator value”))).
Prøvekode:
driver.findElement (By.id (“E-mail”));
Locatortyper og deres syntaks
Locator Type | Syntaks | Beskrivelse |
---|---|---|
cssSelector | driver.findElement (By.cssSelector (“CSS-vælger”)) | Find efter værdi på CSS-vælgeren |
id | driver.findElement (By.id (“ID_of_Element”)) | Find efter værdi på attributten 'id' |
className | driver.findElement (By.className (“Class_of_Element”)) | Find efter værdi på attributten 'klasse' |
linkText | driver.findElement (By.linkText (“Tekst”)) | Find efter værdi af tekst til hyperlinket |
partialLinkText | driver.findElement (Af.partialLinkText (“PartialText”)) | Find efter værdi af undertekst til hyperlinket |
navn | driver.findElement (Ved navn (“Navn_af_Element”)) | Find efter værdi af 'Navn' attribut |
xpath | driver.findElement (By.xpath (“Xpath”)) | Find efter værdi af xpath |
tagnavn | driver.findElement (By.tagName (“input”)) | Find efter værdi på dets tagnavn |
Konklusion
I denne vejledning udviklede vi et automatiseringsscript ved hjælp af WebDriver og Java. Vi diskuterede også de forskellige komponenter, der udgør et WebDriver-script.
Her er kernerne i denne Selenium WebDriver-vejledning:
- Før den aktuelle scripting skal vi importere et par pakker for at kunne oprette et WebDriver-script.
- importere openqa.selenium.By;
- importere openqa.selenium.WebDriver;
- importere openqa.selenium.WebElement;
- importere openqa.selenium.firefox.FirefoxDriver;
- TIL få() metode, der bruges til at starte en ny webbrowserinstans. Tegnsekvensen, der sendes som parameter til get () -metoden, omdirigerer den lancerede webbrowserinstans til applikations-URL'en.
- Det maksimere () metode bruges til at maksimere browservinduet.
- Det klar() metoden bruges til at rydde den værdi, der findes i tekstboksen, hvis nogen.
- Det sendKeys () metode bruges til at indtaste den angivne værdi i tekstboksen.
- Klik på () metoden bruges til at klikke på det webelement, der findes på websiden.
- I WebDriver kan webelementer findes ved hjælp af dynamiske findere.
- Følgende er de tilgængelige lokaliseringstyper:
- id
- className
- navn
- xpath
- cssSelector
- linkText
- partialLinkText
- tagnavn
I den næste vejledning flyttede vi vores fokus mod en ramme, der hjælper til automatiseringstest kendt som TestNG. Vi ville have en detaljeret undersøgelse af de forskellige typer af kommentarer, som rammen giver.
Næste tutorial # 11 : Før vi dykker dybt ned i Frameworks, vil vi se detaljer om JUnit - et testværktøj til open source-enheder. De fleste af programmørerne bruger JUnit, da det er let og ikke kræver meget arbejde for at teste. Denne tutorial giver et indblik i JUnit og dets anvendelse i selen-script.
hvordan man åbner .jar med java
En bemærkning til læserne: Mens vores næste tutorial af Selenium-serien er i behandlingstilstand, kan læsere begynde at oprette deres egne grundlæggende WebDriver-scripts. For flere avancerede scripts og koncepter vil vi have forskellige andre Selenium WebDriver-tutorials, der kommer i denne serie.
Fortæl os det i kommentarer, hvis du har problemer med at oprette eller udføre WebDriver-scripts.
Anbefalet læsning
- Introduktion til Selen WebDriver - Selen Tutorial # 8
- Agurk Selen Tutorial: Agurk Java Selen WebDriver Integration
- WebDriver Hele installationen og installationen med Eclipse - Selenium-tutorial # 9
- Kontroller synligheden af webelementer ved hjælp af forskellige typer WebDriver-kommandoer - Selen-tutorial # 14
- Effektiv Selen Scripting og fejlfinding af scenarier - Selen Tutorial # 27
- Sådan håndteres alarmer / pop op-vinduer i Selen WebDriver - Selen-vejledning nr. 16
- Fejlfinding af selen-scripts med logfiler (Log4j-tutorial) - Selen-tutorial # 26
- Introduktion til JUnit Framework og dens anvendelse i Selenium Script - Selen Tutorial # 11