implementation our first webdriver script selenium webdriver tutorial 10
I de to foregående opplæringene gjorde vi deg kjent med den grunnleggende arkitekturen og funksjonene til WebDriver og infrastruktur som kreves for å komme i gang med Selenium WebDriver . Forutsatt at dere alle har konfigurert systemet med alle nødvendige verktøy og pakker, vi vil komme videre med implementeringen av vårt første WebDriver testskript.
Derfor beveg deg fremover med det påfølgende Selenium WebDriver tutorial , ville vi lage WebDriver-skript. Vi vil også spre lyset på det grunnleggende og ofte brukte WebDriver-kommandoer . Vi vil også lære om lokaliseringsstrategier for UI-elementer og deres inkludering i testmanusene. Vi vil også studere Get Commands i detaljene.
Hva du vil lære:
- Skapelse av skript
- Code Walkthrough
- Testutførelse
- Finne nettelementer
- Locatortyper og deres syntaks
- Konklusjon
- Anbefalt lesing
Skapelse av skript
For skriptoppretting bruker vi “Learning_Selenium” -prosjektet som ble opprettet i forrige opplæring og “gmail.com” som applikasjonen under test (AUT).
Scenario:
- Start nettleseren og åpne 'Gmail.com'.
- Bekreft tittelen på siden og skriv ut bekreftelsesresultatet.
- Skriv inn brukernavn og passord.
- Klikk på Logg på-knappen.
- Lukk nettleseren.
Trinn 1: Opprett en ny java-klasse med navnet “Gmail_Login” under “Learning_Selenium” -prosjektet.
Steg 2: Kopier og lim inn koden nedenfor 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); } }
Ovennevnte kode tilsvarer tekstscenariet som ble presentert tidligere.
Code Walkthrough
Importuttalelser:
import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.By;
Før selve skriptingen må vi importere pakkene ovenfor:
import org.openqa.selenium.WebDriver - Henviser til WebDriver-grensesnittet som kreves for å starte en ny nettleser.
import org.openqa.selenium.firefox.FirefoxDriver - Henviser til FirefoxDriver-klassen som kreves, instantiere en Firefox-spesifikk driver i nettleserinstansen som er instantiert ved hjelp av WebDriver-grensesnittet.
import org.openqa.selenium.WebElement - Referanser til WebElement-klassen som kreves for å sette i gang et nytt webelement.
import org.openqa.selenium.By - Henvisninger til By-klassen som en locatortype kalles på.
Når og når prosjektet vårt vil vokse, er det tydelig og logisk at vi kanskje må introdusere flere andre pakker for mer komplekse og distinkte funksjonaliteter som excellemanipulasjoner, databasetilkobling, logging, påstander etc.
hva kan jeg åpne en eps-fil med
Objekt Instantiering
WebDriver driver = ny FirefoxDriver ();
Vi oppretter en referansevariabel for WebDriver-grensesnitt og instantierer den ved hjelp av FirefoxDriver-klassen. En standard Firefox-profil vil bli lansert, noe som betyr at ingen utvidelser og plugins vil bli lastet med Firefox-forekomsten, og at den kjører i sikker modus.
Starter nettleseren
driver.get (appUrl);
TIL få() metoden kalles for WebDriver-forekomsten for å starte en ny nettleserforekomst. Strengtegnsekvensen ble sendt som parameter inn i få() metoden omdirigerer den lanserte nettleserforekomsten til programmets URL.
Maksimer nettleservinduet
driver.manage (). vindu (). maksimere ();
De maksimere () metoden brukes til å maksimere nettleservinduet kort tid etter at det er omdirigert til applikasjons-URL.
Hent siden Tittel
driver.getTitle ();
De getTitle () metoden brukes til å hente tittelen på den gjeldende websiden. Dermed kan den hentede tittelen lastes til en strengvariabel.
Sammenligning mellom forventede og faktiske verdier:
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.'); }
Ovennevnte kode bruker den betingede setningen java-konstruksjoner for å sammenligne den faktiske verdien og den forventede verdien. Basert på resultatet oppnådd, vil utskriftserklæringen bli utført.
WebElement Instantiering
WebElement brukernavn = driver.findElement (By.id (“E-post”));
I den ovennevnte uttalelsen instantierer vi WebElement-referansen ved hjelp av “Driver.findElement (By.id (“ Email ”))“. Dermed kan brukernavn brukes til å referere til tekstboksen E-post i brukergrensesnittet hver gang vi vil utføre noen handlinger på den.
Fjern kommando
brukernavn.klar ();
Clear () -metoden / kommandoen brukes til å fjerne verdien som er tilstede i tekstboksen, hvis noen. Det tømmer også standard plassholderverdi.
sendKeys Command
brukernavn.sendKeys (“TestSelenium”);
De sendKeys () metode / kommando brukes til å angi / skrive inn den angitte verdien (i parentes) i tekstboksen. Legg merke til at sendKeys () metoden kalles på WebElement-objektet som ble instantiert ved hjelp av elementegenskap som tilsvarer UI-elementet.
Ovennevnte blokk med kode angir strengen “TestSelenium” i tekstboksen E-post i Gmail-applikasjonen.
sendKeys er en av de mest brukte kommandoene på tvers av WebDriver-skriptene.
Klikk på Kommando
SignInButton.click ();
Som sendKeys (), klikk () er en annen overdreven brukt kommando for å samhandle med webelementene. Klikk () kommando / metode brukes til å klikke på webelementet som er tilstede på websiden.
du har erstattet standard gateway på nettverket ditt
Ovennevnte kodeblokk klikker på “Logg på” -knappen i Gmail-applikasjonen.
Merknader:
- I motsetning til sendKeys () -metoden kan klikk () -metoder aldri parametriseres.
- Noen ganger kan klikke på et webelement laste inn en ny side helt. For å opprettholde slike tilfeller blir klikk () -metoden kodet på en måte å vente til siden er lastet inn.
Lukk nettleseren
driver.close ();
Lukk () brukes til å lukke det gjeldende nettleservinduet.
Avslutt Java-programmet
System.exit (0);
Exit () -metoden avslutter Java-programmet med kraft. Husk derfor å lukke alle nettleserforekomstene før du avslutter Java-programmet.
Testutførelse
Testskriptet eller bare Java-programmet kan kjøres på følgende måter:
#1. Under Eclipse's menylinje er det et ikon for å utføre testskriptet. Se følgende figur.
Legg merke til at bare klassen som er valgt vil bli utført.
#to. Høyreklikk hvor som helst i klassen i redigeringsprogrammet, velg alternativet 'Kjør som' og klikk på 'Java-applikasjonen'.
# 3. En annen snarvei for å utføre testskriptet er - Trykk ctrl + F11.
På slutten av utførelsessyklusen ble utskriftsuttalelsen 'Testskript utført vellykket.' finner du i konsollen.
Finne nettelementer
Webelementer i WebDriver kan lokaliseres og inspiseres på samme måte som vi gjorde i forrige tutorials av Selen IDE. Selen IDE og Firebug kan brukes til å inspisere webelementet på GUI. Det anbefales sterkt å bruke Selen IDE for å finne webelementene. Når webelementet er funnet, kopier og lim inn målverdien i WebDriver-koden. Typene av lokaliseringer og lokaliseringsstrategier er stort sett de samme bortsett fra syntaksen og deres anvendelse.
I WebDriver er webelementer lokalisert ved hjelp av dynamiske søkere (findElement (By.locatorType (“locator value”))).
kvalitetssikringstest spørsmål og svar
Eksempelkode:
driver.findElement (By.id (“E-post”));
Locatortyper og deres syntaks
Locator Type | Syntaks | Beskrivelse |
---|---|---|
cssSelector | driver.findElement (By.cssSelector (“CSS Selector”)) | Finn etter verdien av CSS-velgeren |
id | driver.findElement (By.id (“ID_of_Element”)) | Finn etter verdien av “id” -attributtet |
klassenavn | driver.findElement (By.className (“Class_of_Element”)) | Finn etter verdien av “klasse” -attributtet |
linkText | driver.findElement (By.linkText (“Tekst”)) | Finn etter verdien av teksten til hyperkoblingen |
partialLinkText | driver.findElement (By.partialLinkText (“PartialText”)) | Finn etter verdien av undertekst til hyperkoblingen |
Navn | driver.findElement (Ved navn (“Navn_av_Element”)) | Finn etter verdien av 'Navn' -attributt |
xpath | driver.findElement (By.xpath (“Xpath”)) | Finn etter verdi av xpath |
tagName | driver.findElement (By.tagName (“input”)) | Finn etter verdien av navnet på koden |
Konklusjon
I denne veiledningen utviklet vi et automatiseringsskript ved hjelp av WebDriver og Java. Vi diskuterte også de forskjellige komponentene som utgjør et WebDriver-skript.
Her er kjernen i denne Selenium WebDriver-opplæringen:
- Før selve skriptingen må vi importere noen få pakker for å kunne lage et WebDriver-skript.
- import openqa.selenium.By;
- import openqa.selenium.WebDriver;
- import openqa.selenium.WebElement;
- import openqa.selenium.firefox.FirefoxDriver;
- TIL få() metoden som brukes til å starte en fersk nettleserforekomst. Tegnsekvensen som sendes som en parameter i get () -metoden, omdirigerer den lanserte nettleserforekomsten til applikasjons-URL.
- De maksimere () metoden brukes til å maksimere nettleservinduet.
- De klar() metoden brukes til å fjerne verdien som er tilstede i tekstboksen, hvis noen.
- De sendKeys () metoden brukes til å angi den angitte verdien i tekstboksen.
- Klikk () metoden brukes til å klikke på webelementet som er tilstede på websiden.
- I WebDriver kan webelementer lokaliseres ved hjelp av dynamiske søkere.
- Følgende er tilgjengelige søkertyper:
- id
- klassenavn
- Navn
- xpath
- cssSelector
- linkText
- partialLinkText
- tagName
I neste opplæring flyttet vi fokus mot et rammeverk som hjelper til med automatiseringstesting kjent som TestNG. Vi vil ha en detaljert studie av de forskjellige typene av kommentarene som rammeverket gir.
Neste opplæring # 11 : Før vi dykker dypt inn i Frameworks, vil vi se detaljer om JUnit - et testverktøy for åpen kildekodeenhet. De fleste av programmererne bruker JUnit da det er enkelt og ikke tar mye arbeid for å teste. Denne opplæringen vil gi et innblikk i JUnit og dens bruk i selen-skript.
En kommentar til leserne: Mens vår neste opplæring av Selenium-serien er i behandlingsmodus, kan leserne begynne å lage sine egne grunnleggende WebDriver-skript. For flere forhåndsskript og konsepter, vil vi ha forskjellige andre Selenium WebDriver-opplæringer som kommer opp i denne serien.
Gi oss beskjed i kommentarer hvis du har problemer med å opprette eller utføre WebDriver-skriptene.
Anbefalt lesing
- Introduksjon til Selen WebDriver - Selenium Tutorial # 8
- Agurk Selen Tutorial: Agurk Java Selen WebDriver Integration
- WebDriver Hele installasjonen og installasjonen med Eclipse - Selenium Tutorial # 9
- Kontroller synligheten til nettelementer ved hjelp av forskjellige typer WebDriver-kommandoer - Selenium-veiledning nr. 14
- Effektiv Selen Scripting og feilsøking av scenarier - Selenium Tutorial # 27
- Hvordan håndtere varsler / popup-vinduer i Selen WebDriver - Selenium-veiledning nr. 16
- Feilsøking av selen-skript med logger (Log4j-opplæring) - Selen-opplæring # 26
- Introduksjon til JUnit Framework and Its Usage in Selenium Script - Selenium Tutorial # 11