implementation our first webdriver script selenium webdriver tutorial 10
I de två föregående självstudierna gjorde vi dig bekant med den grundläggande arkitekturen och funktioner i WebDriver och den infrastruktur som krävs för att komma igång med Selenium WebDriver . Förutsatt att ni alla kanske har konfigurerat systemet med alla nödvändiga verktyg och paket, vi kommer att gå vidare med implementeringen av vårt första testskript för WebDriver.
Därför rör sig framåt med följden Selenium WebDriver-handledning , skulle vi skapa WebDriver-skript. Vi skulle också sprida ljuset på det grundläggande och vanliga WebDriver-kommandon . Vi skulle också lära oss om lokaliseringsstrategier för UI-element och deras inkludering i testmanusen. Vi skulle också studera Get Commands i detalj.
Vad du kommer att lära dig:
- Skapande av skript
- Kodgenomgång
- Testutförande
- Hitta webbelement
- Locatortyper och deras syntax
- Slutsats
- Rekommenderad läsning
Skapande av skript
För att skapa skript skulle vi använda “Learning_Selenium” -projektet som skapades i föregående handledning och “gmail.com” som applikationen under test (AUT).
Scenario:
- Starta webbläsaren och öppna “Gmail.com”.
- Verifiera sidans titel och skriv ut verifieringsresultatet.
- Ange användarnamn och lösenord.
- Klicka på knappen Logga in.
- Stäng webbläsaren.
Steg 1: Skapa en ny java-klass med namnet “Gmail_Login” under “Learning_Selenium” -projektet.
Steg 2: Kopiera och klistra in koden nedan 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); } }
Ovanstående kod motsvarar det tidigare beskrivna textscenariot.
Kodgenomgång
Importförklaringar:
import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.By;
Innan själva skriptet måste vi importera ovanstående paket:
importera org.openqa.selenium.WebDriver - Refererar till WebDriver-gränssnittet som krävs för att starta en ny webbläsare.
importera org.openqa.selenium.firefox.FirefoxDriver - Hänvisar till FirefoxDriver-klassen som krävs instansera en Firefox-specifik drivrutin i webbläsarinstansen instanserad med WebDriver-gränssnittet.
importera org.openqa.selenium.WebElement - Hänvisningar till WebElement-klassen som krävs för att starta ett nytt webbelement.
importera org.openqa.selenium.By - Hänvisningar till klassen By som en lokaliseringstyp kallas för.
När och när vårt projekt skulle växa är det uppenbart och logiskt att vi kan behöva introducera flera andra paket för mer komplexa och distinkta funktioner som excelmanipulationer, databasanslutning, loggning, påståenden etc.
hur kan jag spela mkv-filer
Objekt Instantiering
WebDriver-drivrutin = ny FirefoxDriver ();
Vi skapar en referensvariabel för WebDriver-gränssnittet och instanserar den med FirefoxDriver-klassen. En standard Firefox-profil kommer att lanseras vilket innebär att inga tillägg och plugins laddas med Firefox-instansen och att den körs i säkert läge.
Starta webbläsaren
driver.get (appUrl);
TILL skaffa sig() metoden kallas för WebDriver-instansen för att starta en ny webbläsarinstans. Strängteckensekvensen skickades som en parameter till skaffa sig() metoden omdirigerar den lanserade webbläsarinstansen till programmets URL.
Maximera webbläsarfönstret
driver.manage (). fönster (). maximera ();
bug livscykel i programvarutestning
De maximera() metoden används för att maximera webbläsarfönstret strax efter att det har omdirigerats till applikations-URL: n.
Hämta sidan Titel
driver.getTitle ();
De getTitle () metoden används för att hämta titeln på den aktuella webbsidan. Således kan den hämtade titeln laddas till en strängvariabel.
Jämförelse mellan förväntade och faktiska värden:
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.'); }
Ovanstående kod använder det villkorliga uttalandet java-konstruktioner för att jämföra det verkliga värdet och det förväntade värdet. Baserat på det erhållna resultatet kommer utskriftsuttalandet att köras.
WebElement Instantiation
WebElement-användarnamn = driver.findElement (By.id (“E-post”));
I ovanstående uttalande instanserar vi WebElement-referensen med hjälp av “Driver.findElement (By.id (“ E-post ”))”. Således kan användarnamnet användas för att referera till e-posttextrutan i användargränssnittet varje gång vi vill utföra några åtgärder på den.
Rensa kommandot
användarnamn.klart ();
Metoden / kommandot clear () används för att rensa värdet som finns i textrutan om något. Det rensar också standardvärdet för platshållare.
sendKeys Command
användarnamn.sendKeys (“TestSelenium”);
De sendKeys () metod / kommando används för att ange / skriva in det angivna värdet (inom parentes) i textrutan. Lägg märke till att sendKeys () metoden anropas på WebElement-objektet som instansierades med hjälp av elementegenskap som motsvarar UI-elementet.
Ovanstående kodblock blockerar strängen ”TestSelenium” i textrutan E-post i Gmail-applikationen.
sendKeys är en av de mest populära kommandona i WebDriver-skript.
Klicka på Kommando
SignInButton.click ();
Tycka om sendKeys (), klicka () är ett annat överdrivet kommando för att interagera med webbelementen. Klick() kommando / metod används för att klicka på det webbelement som finns på webbsidan.
Ovanstående kodblock klickar på knappen 'Logga in' i Gmail-applikationen.
Anmärkningar:
- Till skillnad från sendKeys () -metoden kan klicka () -metoder aldrig parametreras.
- Ibland kan klicka på ett webbelement helt ladda en ny sida. För att upprätthålla sådana fall kodas klickmetoden () så att den väntar tills sidan laddas.
Stäng webbläsaren
driver.close ();
Stäng () används för att stänga det aktuella webbläsarfönstret.
Avsluta Java-programmet
System.exit (0);
Metoden Exit () avslutar Java-programmet med kraft. Kom därför ihåg att stänga alla webbläsarinstanser innan du avslutar Java-programmet.
Testutförande
Testskriptet eller helt enkelt Java-programmet kan köras på följande sätt:
# 1. Under Eclipse menyrad finns en ikon för att utföra testskriptet. Se följande bild.
Anteckna att endast klassen som väljs skulle köras.
#två. Högerklicka var som helst i klassen i redigeraren, välj alternativet 'Kör som' och klicka på 'Java-applikationen'.
# 3. En annan genväg för att utföra testskriptet är - Tryck på ctrl + F11.
I slutet av körcykeln utskriftsmeddelandet 'Testskript körs framgångsrikt.' finns i konsolen.
Hitta webbelement
Webbelement i WebDriver kan lokaliseras och inspekteras på samma sätt som vi gjorde i tidigare handledning av Selen IDE. Selen IDE och Firebug kan användas för att inspektera webbelementet i GUI. Det rekommenderas starkt att du använder Selen IDE för att hitta webbelementen. När webbelementet har hittats, kopiera och klistra in målvärdet i WebDriver-koden. Typerna av lokaliserare och lokaliseringsstrategierna är ungefär desamma förutom syntaxen och deras tillämpning.
I WebDriver lokaliseras webbelement med hjälp av dynamiska sökare (findElement (By.locatorType (“locator value”))).
Exempelkod:
driver.findElement (By.id (“E-post”));
kvalitetssäkringsfrågor och svar
Locatortyper och deras syntax
Locator Type | Syntax | Beskrivning |
---|---|---|
cssSelector | driver.findElement (By.cssSelector (“CSS Selector”)) | Hitta efter värdet på CSS-väljaren |
id | driver.findElement (By.id (“ID_of_Element”)) | Hitta efter värdet på attributet 'id' |
klassnamn | driver.findElement (By.className (“Class_of_Element”)) | Hitta efter värdet på attributet 'class' |
linkText | driver.findElement (By.linkText (“Text”)) | Hitta efter värdet på texten till hyperlänken |
partialLinkText | driver.findElement (By.partialLinkText (“PartialText”)) | Hitta efter värdet på undertext för hyperlänken |
namn | driver.findElement (Vid namn (“Name_of_Element”)) | Hitta efter värdet på 'Namn' -attribut |
xpath | driver.findElement (By.xpath (“Xpath”)) | Hitta efter värde av xpath |
taggnamn | driver.findElement (By.tagName (“input”)) | Hitta efter värdet på dess taggnamn |
Slutsats
I denna handledning utvecklade vi ett automatiseringsskript med hjälp av WebDriver och Java. Vi diskuterade också de olika komponenterna som utgör ett WebDriver-skript.
Här är kärnorna i denna Selenium WebDriver-handledning:
- Före själva skriptet måste vi importera några paket för att kunna skapa ett WebDriver-skript.
- importera openqa.selenium.By;
- importera openqa.selenium.WebDriver;
- importera openqa.selenium.WebElement;
- importera openqa.selenium.firefox.FirefoxDriver;
- TILL skaffa sig() metod som används för att starta en ny webbläsarinstans. Teckensekvensen skickas som en parameter till get () -metoden omdirigerar den lanserade webbläsarinstansen till applikations-URL: n.
- De maximera() metoden används för att maximera webbläsarfönstret.
- De klar() metoden används för att rensa värdet som finns i textrutan om något.
- De sendKeys () metoden används för att ange det angivna värdet i textrutan.
- Klick() metoden används för att klicka på det webbelement som finns på webbsidan.
- I WebDriver kan webbelement lokaliseras med hjälp av Dynamic Finders.
- Följande är tillgängliga locatortyper:
- id
- klassnamn
- namn
- xpath
- cssSelector
- linkText
- partialLinkText
- taggnamn
I nästa handledning flyttade vi vårt fokus mot ett ramverk som hjälper till med automatiseringstest som kallas TestNG. Vi skulle ha en detaljerad studie om olika typer av anteckningar som tillhandahålls av ramverket.
Nästa handledning # 11 : Innan vi dyker djupt in i ramverk kommer vi att se detaljer om JUnit - ett testverktyg för öppen källkod. De flesta av programmerarna använder JUnit eftersom det är enkelt och inte tar mycket ansträngningar att testa. Denna handledning ger en inblick i JUnit och dess användning i selen-skript.
En kommentar till läsarna: Medan vår nästa handledning om Selenium-serien är i bearbetningsläge kan läsare börja skapa sina egna grundläggande WebDriver-skript. För mer avancerade skript och koncept kommer vi att ha olika andra Selenium WebDriver-självstudier som kommer upp i denna serie.
Låt oss veta i kommentarer om du har problem med att skapa eller köra WebDriver-skript.
Rekommenderad läsning
- Introduktion till Selen WebDriver - Selen Tutorial # 8
- Gurka Selen Tutorial: Gurka Java Selen WebDriver Integration
- WebDriver Hela installationen och installationen med Eclipse - Selen Tutorial # 9
- Kontrollera synligheten för webbelement med olika typer av WebDriver-kommandon - Selen Tutorial # 14
- Effektiv skriptning av selen och felsökning av scenarier - Selen-handledning # 27
- Hur man hanterar varningar / popup-fönster i Selen WebDriver - Selen Tutorial # 16
- Felsökning av selenskript med loggar (Log4j-handledning) - Selen-handledning # 26
- Introduktion till JUnit Framework and Its Use in Selenium Script - Selenium Tutorial # 11