top 25 selenium webdriver commands that you should know
Top Selen WebDriver-kommandoer - En fænomenal guide til automatiseringstestere
Selen WebDriver er et af de mest populære open source-webstedsautomationsværktøjer. De fleste af mine andre automatiseringstestere foretrækker kombinationen af WebDriver med Java.
I denne vejledning vil jeg diskutere 25 rutinemæssigt brugte Selenium WebDriver-kommandoer sammen med deres berørte syntaks og enkle eksempler til nem forståelse.
Hvad du vil lære:
- Typer af kommandoer i WebDriver
- Top 7 Selen-kommandoer med detaljer
- Liste over 25 mere populære WebDriver-kommandoer og eksempler
- # 1) få ()
- # 2) getCurrentUrl ()
- # 3) findElement (Af, by) og klik på ()
- # 4) isEnabled ()
- # 5) findElement (Af, af) med sendKeys ()
- # 6) findElement (Af, af) med getText ()
- # 7) Indsend ()
- # 8) findElements (af, af)
- # 9) findElements (Af, by) med størrelse ()
- # 10) pageLoadTimeout (tid, enhed)
- # 11) implicitWait ()
- # 12) indtil () og visibilityOfElementLocated ()
- # 13) indtil () og alertIsPresent ()
- # 14) getTitle ()
- # 15) Vælg
- # 16) naviger ()
- # 17) getScreenshotAs ()
- # 18) moveToElement ()
- # 19) dragAndDrop ()
- # 20) switchTo () og accepter (), afvis () og sendKeys ()
- # 21) getWindowHandle () og getWindowHandles ()
- # 22) getConnection ()
- # 23) SÅ
- # 24) assertEquals (), assertNotEquals (), assertTrue () og assertFalse ()
- # 25) luk () og afslut ()
- Konklusion
- Anbefalet læsning
Typer af kommandoer i WebDriver
I sidste Selen-tutorial , vi diskuterede forskellige typer alarmer stødt på under test af webbaserede applikationer og deres effektive måder at håndtere. Vi diskuterede begge typer alarmer, dvs. 'webbaserede alarmer' og 'vinduesbaserede alarmer' i længden. Vi gjorde dig også bekendt med endnu et Java-baseret værktøj navngivet som 'Robotklasse' til at håndtere Windows-baseret pop-up.
Fremad i denne Selenium WebDriver tutorial-serie , ville vi presse videre forskellige almindeligt og rutinemæssigt anvendte Selenium WebDriver-kommandoer . Vi vil nøjagtigt og kort diskutere hver af disse Selenium-kommandoer for at gøre dig i stand til at bruge disse kommandoer effektivt, når situationen opstår.
Hver automatiserings Java-arbejdsfil starter med at oprette en reference til webbrowser, som vi ønsker at bruge som nævnt i nedenstående syntaks.
Der er flere metoder, der er tilgængelige fra Webdriver-grænsefladen. Disse metoder tilgås ved hjælp af instansvariablen chauffør i et simpelt format driver.methodName (); . Alle disse automatiseringsprojekter inkluderer at kalde disse metoder og sammenligne og evaluere, hvad de rent faktisk returnerer.
Enkelt sagt kan vi generelt klassificere Webdriver-kommandoer som:
- Browser-kommandoer,
- Få kommandoer,
- Navigationskommandoer,
- Webelement-kommandoer,
- Handlingskommandoer og
- Resultatkommandoer.
Ud fra sammenhængen med manuel test bestemmes resultatet af en test, enten PASS eller FAIL ud fra resultatkommandoerne, som normalt sammenligner de forventede og faktiske resultater, og resten er Testcase-trin.
Top 7 Selen-kommandoer med detaljer
Bare for at få en grov idé, ville vi diskutere følgende Selenium WebDriver-kommandoer og deres forskellige versioner:
- få() metoder
- Finde links efter linkText () og partialLinkText ()
- Valg af flere elementer i en drop dropdown
- Indsendelse af en formular
- Håndtering af iframes
- tæt() og Afslut() metoder
- Undtagelse Håndtering
# 1) get () Metoder
WebDriver-kommando | Anvendelse |
---|---|
getAttribute () | • Kommandoen bruges til at hente værdien for den angivne attribut • Kommandoen kræver en enkelt strengparameter, der henviser til en attribut, hvis værdi vi stræber efter at kende og returnerer en strengværdi som et resultat. driver.findElement (By.id ('findID')). getAttribute ('værdi'); |
få() | • Kommandoen starter en ny browser og åbnes den angivne URL i browserinstansen • Kommandoen tager en enkelt strengtypeparameter, der normalt er en URL til applikation, der testes • For Selen IDE-brugerne kan kommandoen meget ligne åben kommando driver.get ('https://google.com'); |
getClass () | Kommandoen bruges til at hente Class-objektet der repræsenterer runtime-klassen for dette objekt driver.getClass (); |
getCurrentUrl () | • Kommandoen bruges til at hente URL'en til den webside, som brugeren aktuelt har adgang til • Kommandoen kræver ikke nogen parameter og returnerer en strengværdi driver.getCurrentUrl (); |
getPageSource () | • Kommandoen bruges til at hente sidekilden af den webside, som brugeren aktuelt har adgang til • Kommandoen kræver ikke nogen parameter og returnerer en strengværdi • Kommandoen kan bruges med forskellige strengoperationer som indeholder () for at fastslå tilstedeværelsen af den angivne strengværdi boolsk resultat = driver.getPageSource (). indeholder ('String to find'); |
getTitle () | • Kommandoen bruges til at hente titlen på den webside, som brugeren i øjeblikket arbejder på. En nullstreng returneres, hvis websiden ikke har nogen titel • Kommandoen kræver ikke nogen parameter og returnerer en trimmet strengværdi String title = driver.getTitle (); |
getText () | • Kommandoen bruges til at hente den indre tekst af det angivne webelement • Kommandoen kræver ikke nogen parameter og returnerer en strengværdi • Det er også en af de udbredte kommandoer til verifikation af meddelelser, etiketter, fejl osv., Der vises på websiderne. String Text = driver.findElement (By.id ('Text')). GetText (); |
getWindowHandle () | • Kommandoen bruges til at tackle situationen, hvor vi har mere end et vindue at håndtere. • Kommandoen hjælper os med at skifte til det nyåbnede vindue og udføre handlinger i det nye vindue. Brugeren kan også skifte tilbage til det forrige vindue, hvis han / hun ønsker det. private String winHandleBefore; winHandleBefore = driver.getWindowHandle (); driver.switchTo (). vindue (winHandleBefore); |
getWindowHandles () | • Kommandoen svarer til 'getWindowHandle ()' med den subtile forskel, at det hjælper med at håndtere flere vinduer, dvs. når vi skal håndtere mere end 2 vinduer. |
Kodestykket til 'getWindowHandles ()' er angivet nedenfor:
public void explicitWaitForWinHandle(final WebDriver dvr, int timeOut, final boolean close) throws WeblivException { try { Wait wait = new WebDriverWait(dvr, timeOut); ExpectedCondition condition = new ExpectedCondition() { @Override public Boolean apply(WebDriver d) { int winHandleNum = d.getWindowHandles().size(); if (winHandleNum > 1) { // Switch to new window opened for (String winHandle : d.getWindowHandles()) { dvr.switchTo().window(winHandle); // Close the delete window as it is not needed if (close && dvr.getTitle().equals('Demo Delete Window')) { dvr.findElement(By.name('ok')).click(); } } return true; } return false; } };
# 2) Find links efter linkText () og partialLinkText ()
Lad os få adgang til “google.com” og “abodeqa.com” ved hjælp af linkText () og partialLinText () metoder til WebDriver.
Ovenstående links kan tilgås ved hjælp af følgende kommandoer:
chauffør .findElement (By.linkText ( “Google” klik på ();
chauffør .findElement (By.linkText ( AbodeQA klik på ();
Kommandoen finder elementet ved hjælp af linktekst, og klik derefter på elementet, og brugeren vil således blive omdirigeret til den tilsvarende side.
Ovenstående links kan også fås ved hjælp af følgende kommandoer:
chauffør .findElement (By.partialLinkText ( “Goo” klik på ();
chauffør .findElement (By.partialLinkText ( “Bolig” klik på ();
Ovenstående to kommandoer finder elementerne baseret på understrengningen af det link, der er angivet i parentesen, og således finder partialLinkText () webelementet med det angivne underlag og klikker derefter på det.
# 3) Valg af flere elementer i en drop dropdown
Der er primært to slags dropdowns:
- Enkelt vælg dropdown : En rulleliste, der kun tillader at vælge en enkelt værdi ad gangen.
- Multi-drop dropdown : En rullemenu, der gør det muligt at vælge flere værdier ad gangen.
Overvej HTML-koden nedenfor til en rullemenu, der kan vælge flere værdier på samme tid.
Red Green Yellow Grey
Kodestykket nedenfor illustrerer flere valg i en rullemenu.
// select the multiple values from a dropdown Select selectByValue = new Select(driver.findElement(By.id('SelectID_One'))); selectByValue.selectByValue('greenvalue'); selectByValue.selectByVisibleText('Red'); selectByValue.selectByIndex(2);
# 4) Indsendelse af en formular
De fleste eller næsten alle websteder har formularer, der skal udfyldes og indsendes under test af en webapplikation. Brugeren kan komme på tværs af flere typer formularer som loginformular, tilmeldingsformular, filoverførselsformular, profiloprettelsesformular osv.
I WebDriver leveres en bruger med en metode, der er specifikt oprettet til at indsende en formular. Brugeren kan også bruge klikmetoden til at klikke på knappen Send som en erstatning for knappen Send.
Tjek kodestykket nedenfor i forhold til ovenstående 'nye bruger' -formular:
// enter a valid username driver.findElement(By. id ('username')).sendKeys('name'); // enter a valid email address driver.findElement(By. id ('email')).sendKeys('name@abc.com'); // enter a valid password driver.findElement(By. id ('password')).sendKeys('namepass'); // re-enter the password driver.findElement(By. id ('passwordConf')).sendKeys('namepass'); // submit the form driver.findElement(By. id ('submit')).submit();
Så snart programkontrollen finder afsendemetoden, finder den elementet og udløser Indsend() metode på det fundne webelement.
# 5) Håndtering af iframes
Mens vi automatiserer webapplikationer, kan der være situationer, hvor vi skal håndtere flere rammer i et vindue. Således er test scriptudvikleren forpligtet til at skifte frem og tilbage mellem forskellige rammer eller iframes for den faktiske kendsgerning.
En indbygget ramme akronym som iframe bruges til at indsætte et andet dokument i det aktuelle HTML-dokument eller blot en webside til en anden webside ved at aktivere indlejring.
Overvej følgende HTML-kode med iframe på websiden:
Software Testing Help - iframe session
Ovenstående HTML-kode illustrerer tilstedeværelsen af en integreret iframe i en anden iframe. For at være i stand til at få adgang til barnet iframe er det således nødvendigt, at en bruger navigerer til den forælder iframe først. Efter at have udført den krævede operation, kan en bruger blive bedt om at navigere tilbage til den overordnede iframe for at håndtere det andet element på websiden.
Det er umuligt, hvis en bruger forsøger at få adgang til barnet iframe direkte uden at gå til forældren iframe først.
Vælg iframe efter id
chauffør .switchTo (). ramme ( ' Ramme-ID ' );
Finder iframe ved hjælp af tagName
Under lokalisering af en iframe kan brugeren have problemer, hvis iframe ikke tilskrives standardegenskaber. Det bliver en kompleks proces at finde rammen og skifte til den. For at spænde situationen udnyttes en bruger til at lokalisere en iframe ved hjælp af en tagName-metode svarende til den måde, vi finder ethvert andet webelement på i WebDriver.
driver.switchTo (). ramme (driver.findElements (By.tagName ('iframe'). get (0));
Ovenstående kommando lokaliserer det første webelement med det angivne tagName og skifter til den iframe. 'Get (0) bruges til at lokalisere iframe med indeksværdien.' I linier med vores HTML-kode vil ovennævnte kodesyntaks føre til, at programkontrollen skifter til 'ParentFrame'.
Lokalisering af iframe ved hjælp af indekset:
a) ramme (indeks)
driver.switchTo (). ramme (0);
b) ramme (navn på ramme)
driver.switchTo (). ramme ('rammens navn');
c) ramme (WebElement-element)
Vælg Overordnet vindue
driver.switchTo (). defaultContent ();
Ovenstående kommando bringer brugeren tilbage til det oprindelige vindue, dvs. ud af begge iframes.
# 6) luk () og afslut () metoder
Der er to typer kommandoer i WebDriver til at lukke webbrowserinstansen.
a) luk () : WebDriver's close () -metode lukker det webbrowservindue, som brugeren i øjeblikket arbejder på, eller vi kan også sige det vindue, som WebDriver i øjeblikket får adgang til. Kommandoen kræver hverken nogen parameter eller returnerer nogen værdi.
b) afslut () : I modsætning til close () -metoden lukker quit () -metoden alle de vinduer, som programmet har åbnet. Samme som close () -metoden, kommandoen kræver hverken nogen parameter eller returnerer nogen værdi.
Se nedenstående kodestykker:
chauffør .tæt(); // lukker kun et enkelt vindue, som WebDriver-forekomsten har adgang til i øjeblikket
chauffør .Afslut(); // lukker alle vinduer, der blev åbnet af WebDriver-forekomsten
# 7) Undtagelseshåndtering
Undtagelser er de forhold eller situationer, der uventet standser programudførelsen.
Årsagerne til sådanne forhold kan være:
- Fejl introduceret af brugeren
- Fejl genereret af programmøren
- Fejl genereret af fysiske ressourcer
For at håndtere disse uventede forhold blev håndteringen af undtagelser således konceptualiseret.
Med hensyn til Java-kode, som vi implementerer, mens vi automatiserer en webapplikation, kan den lukkes i en blok, der er i stand til at tilvejebringe en håndteringsmekanisme mod de fejlagtige forhold.
Fanger en undtagelse
For at fange en undtagelse bruger vi nedenstående blok med kode
try{ // Protected block // implement java code for automation } catch (ExceptionName e) { // catch block - Catches the exceptions generated in try block without halting the program execution }
Hvis der forekommer en undtagelse i prøveblokken / den beskyttede blok, kontrollerer udførelsen for en fangstblok for den matchende undtagelsestype og videregiver undtagelsen til den uden at bryde programudførelsen.
Flere fangstblokke
try{ //Protected block } catch (ExceptionType1 e) { // catch block } catch (ExceptionType2 e) { // catch block } catch (ExceptionType3 e) { // catch block }
I ovenstående kode er sandsynligvis en undtagelse fanget i den første fangstblok, hvis undtagelsestypen matcher. Hvis undtagelsestypen ikke stemmer overens, krydses undtagelsen til den anden fangstblok og den tredje fangstblok og så videre, indtil alle fangstblokkene er besøgt.
WebDriver-betingelser og håndtering af undtagelser
Når vi stræber efter at verificere tilstedeværelsen af ethvert element på websiden ved hjælp af forskellige WebDriver 's betingede kommandoer, formoder WebDriver, at webelementet er til stede på websiden. Hvis webelementet ikke er til stede på websiden, kaster de betingede kommandoer et “NoSuchElementPresentException”. For at undgå sådanne undtagelser fra at stoppe programudførelsen bruger vi undtagelseshåndteringsmekanismer. Se kodestykket nedenfor:
WebElement saveButton = driver.findElement(By.id('Save')); try{ if(saveButton.isDisplayed()){ saveButton.click(); } } catch(NoSuchElementException e){ e.printStackTrace(); }
Liste over 25 mere populære WebDriver-kommandoer og eksempler
Nedenfor er listen over top 25 rutinemæssigt brugte Webdriver-kommandoer, som hver automatiseringstester skal kende.
Lad os gennemgå disse kommandoer en efter en detaljeret.
Yderligere læsning => Selen WebDriver-vejledning
# 1) få ()
Kommando ved hjælp af get () for at åbne en URL i den aktuelle browser.
Kommandoen nedenfor åbner den angivne URL, 'https://www.softwaretestinghelp.com' i browseren.
Syntaks:
driver.get('https://www.softwaretestinghelp.com');
Forklaring:
- Naviger til URL'en https://www.softwaretestinghelp.com
# 2) getCurrentUrl ()
Kommando ved hjælp af getCurrentUrl () for at kontrollere, om URL'en er korrekt.
Nedenstående kommando får den aktuelle URL i strengformat.
Syntaks:
hvilket værktøj kan bruges til at opfange detaljerede oplysninger fra en virksomheds websted?
driver.getCurrentUrl();
Vi bruger normalt denne metode i kommandoer for at kontrollere, om vi har navigeret til den rigtige side som forventet. Til det er vi nødt til at bruge Assert som vist nedenfor Eksempel .
Syntaks:
Assert.assertEquals(expectedUrl, driver.getCurrentUrl());
Hvor expectUrl er den URL, der forventes i strengformat.
Forklaring:
- Kontroller og bekræft, at den indlæste URL forbliver den samme, og at den korrekte side indlæses.
# 3) findElement (Af, by) og klik på ()
findElement (By, by) og klik på () for at klikke på et hvilket som helst element på websiden.
Metoden findElement (By, by) søger og lokaliserer det første element på den aktuelle side, der matcher kriterierne som parameter. Denne metode bruges normalt i kommandoer til at simulere brugerhandlinger som klik, indsend, skriv osv.
Nedenstående kommando søger og lokaliserer det første element på websiden med id ”submit1” og klikker på det, hvis det ikke er dækket.
Syntaks:
driver.findElement(By.id('submit1')).click();
Elementet kan placeres ved hjælp af ID , Navn , Klasse Navn , Tagnavn , Linktekst & Delvis linktekst , CSS-vælger og X-sti .
Forklaring:
- Se efter den påkrævede Send-knap.
- Klik på knappen.
Kommandoen nedenfor vælger et element fra listeboksen.
Syntaks:
WebElement roleDropdown = driver.findElement(By.id('name1'); roleDropdown.click();
Forklaring:
- Søg efter og find listeelementet efter id 'navn1'.
- Klik på den vare.
# 4) isEnabled ()
isEnabled () for at kontrollere, om elementet er aktiveret eller deaktiveret i Selen WebDriver.
For at kontrollere, om et bestemt element er aktiveret på en webside, bruger vi metoden isEnabled ().
Syntaks:
boolean textBox = driver.findElement(By.xpath('//input[@name='textbox1']')).isEnabled();
Forklaring:
- Finder elementet på websiden i henhold til xpath og kontrollerer, om elementet er aktiveret.
# 5) findElement (Af, af) med sendKeys ()
findElement (By, by) med sendKeys () for at indtaste formularfelterne.
Formularvalideringskontrol ved at indtaste de forskellige brugerindgange, der ofte kræves i automatiseringstest. Vi bruger findElement (By, by) til at finde felterne og sendKeys () til at skrive noget indhold i et redigerbart felt.
Nedenstående kommando bruger navnelokatoren til at finde formularfeltet og skriver 'Aaron' i det.
Syntaks:
driver.findElement(By.name('name')).sendkeys('Aaron');
Forklaring:
- Se efter det krævede navnefelt i formularen.
- Indtast værdien 'Aaron' i den.
# 6) findElement (Af, af) med getText ()
findElement (By, by) med getText () for at gemme værdien af det målrettede webelement.
GetText () er en metode, der giver dig den indre tekst i webelementet. Hent tekst er teksten inde i HTML-tags.
Nedenstående kode finder elementet med tagName “select” og får teksten inde i tagget og gemmer det i en variabel rulleliste. Nu kan String dropDown bruges til yderligere handlinger inde i programmet.
Syntaks:
String dropDown = driver.findElement(By.tagName('dropdown1')).getText();
Forklaring:
- Se efter det krævede felt i formularen, der har tagName 'dropdown1'.
- Tag teksten inde i dens HTML-tag.
- Gem teksten i strengobjekt 'DropDown'.
# 7) Indsend ()
Send () for at indsende en webformular.
Klik () -metoden, som vi diskuterede ovenfor, kan bruges til at klikke på hvilke som helst links eller knapper. Submit () er et bedre alternativ til at klikke (), hvis elementet der skal klikkes på er en send-knap. Send-knappen er inde i HTML-form-tagget, og typen af knap er 'send' (ikke 'knap').
Send () gør livet lettere ved automatisk at finde knappen og metoden, der kan føjes til ethvert andet felt som navn eller e-mail-adresse. I tilfælde af klik er vi nødt til at bruge findElement (By, by) -metoden og angive de rigtige locators.
I nogle scenarier, hvor handlingen udføres gennem andre elementer end en knap, skal du indsende () arbejde og klikke på () ikke.
Syntaks:
driver.findElement(By.xpath('//input[@name='comments']')).submit();
Forklaring:
- Find element i den givne x-sti med navnet 'kommentarer'.
- Indsend formularen.
# 8) findElements (af, af)
findElements (By, by) for at få listen over webelementer.
Nogle gange vil vi måske udskrive eller foretage en handling på en liste over webelementer som links eller inputfelter på en webside. I et sådant tilfælde bruger vi findElements (By, by).
Syntaks:
List allChoices = dropDown.findElements(By.xpath('.//fruitoption'));
Forklaring:
- En liste over alle webelementer med specificeret xpath er gemt i webelementlisten allChoices.
# 9) findElements (Af, by) med størrelse ()
findElements (By, by) med størrelse () for at kontrollere, om et element er til stede.
findElements (Af, by) kan bruges til at kontrollere, om et element faktisk findes på websiden.
Kommandoen nedenfor bruges, hvis vi vil kontrollere, at et element med en bestemt lokalisator er til stede på en webside. Hvis størrelse ()! = 0, er elementet til stede.
Syntaks:
Boolean checkIfElementPresent= driver.findElements(By.xpath('//input[@id='checkbox2']')).size()!= 0;
Forklaring:
- Find-element er angivet i xpath med id 'checkbox2'.
- I henhold til størrelsen på elementlisten indstilles den boolske checkIfElementPresent til SAND eller FALSK.
# 10) pageLoadTimeout (tid, enhed)
pageLoadTimeout (tid, enhed) for at indstille tiden for en side, der skal indlæses.
Undertiden på grund af serverproblemer eller netværksforsinkelser kan det tage mere end normalt tid at indlæse en side. Dette kan muligvis kaste en fejl i programmet. For at undgå dette indstiller vi et ventetid, og pageLoadTimeout () er en af en sådan metode. Dette følger normalt en get () kommando.
Syntaks:
driver.manage().timeouts().pageLoadTimeout(500, SECONDS);
Forklaring:
- Vent i 500 sekunder, indtil en side indlæses.
# 11) implicitWait ()
implicitlyWait () for at indstille et ventetid, inden du søger og finder et webelement.
Hvad sker der, hvis Webdriver forsøger at finde et element, før websiden indlæses, og elementet vises? NoSuchElementExeption kastes. For at undgå dette kan vi tilføje en kommando for implicit at vente i en vis tid, før vi finder elementet.
Syntaks:
driver.manage().timeouts().implicitlyWait(1000, TimeUnit.SECONDS);
Forklaring:
- Vent implicit i 1000 sekunder, før du udfører den næste linje i koden.
# 12) indtil () og visibilityOfElementLocated ()
indtil () fra WebdriverWait og visibilityOfElementLocated () fra ExpectedConditions for at vente eksplicit, indtil et element er synligt på websiden.
At håndtere sager, hvor et element tager for meget tid på at være synligt på softwarens webside, der anvender implicit vent, bliver vanskelig. I dette tilfælde kan vi skrive en kommentar for at vente, indtil elementet vises på websiden. Denne kommando bruger en kombination af indtil () -metoden fra WebdriverWait Class og visibilityOfElementLocated () -metoden fra ExpectedConditions-klassen.
Syntaks:
WebDriverWait wait = new WebDriverWait(driver, 10); WebElement element = wait.until(ExpectedConditions.visibilityOfElementLocated (By.xpath('//input[@id=’name’]')));
Forklaring:
- Den første linje siger, hvor lang tid der skal vente, hvilket er 10 sekunder.
- Den anden betingelse siger en forventet tilstand at vente på. Her er det et element med id'navn 'i den nævnte xpath.
# 13) indtil () og alertIsPresent ()
indtil () fra WebdriverWait og alertIsPresent () fra ExpectedConditions for at vente eksplicit, indtil en advarsel vises.
I nogle scenarier er vi nødt til at vente på advarsler for at fortsætte testen. I dette tilfælde bruger vi en kommando, der bruger indtil () -metoden fra WebdriverWait-klassen og alarmIsPresent () -metoden fra ExpectedConditions-klassen.
Se kommandoen nedenfor:
WebDriverWait wait = new WebDriverWait(driver, 10); WebElement element = wait.until(ExpectedConditions.alertIsPresent() );
Forklaring:
- Den første linje siger, hvor lang tid det er at vente - det er 10 sekunder.
- Den anden betingelse siger en forventet tilstand at vente på. Her er det en alarm pop op.
# 14) getTitle ()
getTitle () for at få sidetitel i Selenium webdriver.
Syntaks:
String title = driver.getTitle(); System.out.println(title);
Dette bruges normalt til at udskrive titlen i outputloggene.
Forklaring:
- Få titlen på websiden, og gem den i strengobjektets titel.
- Udskriv værdien, der er gemt i titlen, til outputloggene.
# 15) Vælg
Vælg klasse til valg og fravælgelse af værdier fra rullemenuen i Selenium WebDriver.
Vi har ofte dropdown-relaterede scenarier. Metoder fra Select-klassen bruges til at håndtere dette. Vi kan bruge selectByVisibleText (), selectByValue () eller selectByIndex () i henhold til scenariet.
Syntaks:
WebElement mySelectedElement = driver.findElement(By.id('select')); Select dropdown= new Select(mySelectedElement); dropdown.selectByVisibleText('Apple');
Forklaring:
- Find Drop down ved hjælp af det id 'vælg'.
- Vælg den synlige tekst 'Apple' i rullemenuen.
WebElement mySelectedElement = driver.findElement(By.id('select')); Select dropdown= new Select(mySelectedElement); Dropdown.selectByValue('Apple')
Forklaring:
- Find rullemenuen ved hjælp af dens id 'vælg'.
- Vælg teksten med værdien 'Apple' i rullemenuen.
WebElement mySelectedElement = driver.findElement(By.id('select')); Select dropdown= new Select(mySelectedElement); listbox.selectByIndex(1);
Forklaring:
- Find rullemenuen ved hjælp af dens id 'vælg'.
- Vælg rullelisten med indeksværdien '1' fra rullelisten (Andet element).
Svarende til markeringen kan vi fravælge værdier fra rullemenuen ved hjælp af lignende kommandoer.
Kontroller venligst kommandoerne:
WebElement mySelectedElement = driver.findElement(By.id('select')); Select dropdown= new Select(mySelectedElement); dropdown.deselectByVisibleText('Apple');
Forklaring:
- Find rullemenuen ved hjælp af dens id 'vælg'.
- Fravælg den synlige tekst 'Apple' fra rullemenuen.
WebElement mySelectedElement = driver.findElement(By.id('select')); Select dropdown= new Select(mySelectedElement); Dropdown.deselectByValue('Apple');
Forklaring:
- Find rullemenuen ved hjælp af dens id 'vælg'.
- Fjern markeringen af teksten med værdien 'Apple' i rullemenuen.
WebElement mySelectedElement = driver.findElement(By.id('select')); Select dropdown= new Select(mySelectedElement); listbox.deselectByIndex(1);
Forklaring:
- Find rullemenuen ved hjælp af dens id 'vælg'.
- Fjern markeringen af rullelisten med indeksværdien '1' fra rullelisten (Andet element).
navigere () for at navigere mellem URL'erne.
Vi ser ofte scenarier, hvor vi måske vil navigere fra landings-URL'en og derefter gå tilbage eller fremad. I sådanne tilfælde kan vi i stedet for at bruge get () bruge navigate (). I Navigate kan vi bruge tilbage () og forward () metoder uden at specificere URL'erne.
Syntaks:
driver.navigate().to('https://www.softwaretestinghelp.com'); driver.navigate().back(); driver.navigate().forward();
Forklaring:
- Naviger til https://www.softwaretestinghelp.com
- Naviger tilbage.
- Naviger fremad.
# 17) getScreenshotAs ()
getScreenshotAs () til at fange hele skærmbilledet på siden i Selenium WebDriver.
Denne er ofte påkrævet for at gemme dine arbejdsoplysninger eller nogle gange for manuelt at kontrollere output. Nedenstående kommando bruges til at tage et skærmbillede og gemme i en outputfil.
Syntaks:
File shot = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE); FileUtils.copyFile(shot, new File('D:\ shot1.jpg'));
Forklaring:
- Tag et skærmbillede, og gem filen i objektbillede.
- Gem filen i D-drev som shot1.png.
# 18) moveToElement ()
moveToElement () fra handlingsklassen for at simulere musens svævende effekt.
Der er scenarier, hvor vi skal svæve over webelementer som over menuen for at se undermenu, links for at se farveændringer osv. I disse tilfælde bruger vi Handlingsklasse. Se nedenstående syntaks for Action-klasse.
Syntaks:
Actions actions = new Actions(driver); WebElement mouseHover = driver.findElement(By.xpath('//div[@id='mainmenu1']/div')); actions.moveToElement(mouseHover); actions.perform();
Forklaring
- Find og find webelementet med div id 'hovedmenu1'.
- Flyt musemarkøren til elementet.
# 19) dragAndDrop ()
dragAndDrop () fra Handlingsklasse for at trække et element og slippe det på et andet element.
I nogle scenarier vil vi måske trække elementer. For eksempel, træk et billede til scenen. I dette tilfælde kan vi bruge handlingen klassen.
I dragAndDrop-metoden videregiver vi de to parametre, Source locator - det element, vi vil trække, og Destination locator - det element, som vi vil falde til.
Syntaks:
WebElement sourceLocator = driver.findElement(By.xpath('//*[@id='image1']/a')); WebElement destinationLocator = driver.findElement(By.xpath('//*[@id='stage']/li')); Actions actions=new Actions(driver); actions.dragAndDrop(sourceLocator, destinationLocator).build().perform();
Forklaring:
- Find og find kilde-webelementet.
- Find og find destinationswebelementet.
- Træk og slip kildeelementet på destinationselementet.
# 20) switchTo () og accepter (), afvis () og sendKeys ()
switchTo () og accepter (), afvis () og sendKeys () -metoder fra Alert-klasse for at skifte til popup-alarmer og håndtere dem.
For at skifte til alarmer, pop op-vinduer og håndtere dem bruger vi en kombination af skifte til() og acceptere (), afskedige () metoder fra Alert-klassen.
Syntaks:
Alert alert = driver.switchTo().alert(); alert.sendKeys('This Is Softwaretestinghelp'); alert.accept()
Forklaring:
- Skift til alarmvinduet.
- Skriv 'This Is Softwaretestinghelp' i alarmen.
- Accepter advarslen, og luk den.
alarm.dismiss () kan bruges til at afvise alarmen.
# 21) getWindowHandle () og getWindowHandles ()
getWindowHandle () og getWindowHandles () til at håndtere flere Windows i Selenium WebDriver.
database design interview spørgsmål og svar
Der er mange tilfælde, hvor webapplikationer har mange rammer eller vinduer.
Disse er for det meste reklamer eller pop op-vinduer med oplysninger. Vi kan håndtere flere vinduer ved hjælp af Windows Handlers. Webdriver gemmer et unikt vindue-id for hvert vindue. Vi bruger dette id til at håndtere dem.
Syntaks:
String handle= driver.getWindowHandle(); Set handle= driver.getWindowHandles();
Ovenstående kommandoer bruges til at hente vindue-id'er for det aktuelle vindue og alle vinduerne. Se løkken nedenfor for at se, hvordan vi kan gå til hvert vindue igennem for løkke.
for (String handle : driver.getWindowHandles()){ driver.switchTo().window(handle); }
Forklaring:
- For hvert vinduehåndterings-id fra driver.getWindowHandles () skal du skifte til det vindue-id.
# 22) getConnection ()
getConnection () fra DriverManager for at starte databaseforbindelse.
For at starte en databaseforbindelse bruger vi getConnection fra DriverManager-klassen.
Syntaks:
DriverManager.getConnection(URL, 'username', 'password' )
Forklaring:
- Opret forbindelse til databasen via URL og legitimationsoplysninger.
# 23) SÅ
IP for at læse fra excel-filerne.
I datadrevet test gemmer vi ofte input i excel-fil og læser den. For at gøre dette i WebDriver importerer vi POI-pakke og bruger derefter kommandoen nedenfor.
Syntaks:
Workbook workbook = WorkbookFactory.create(new FileInputStream(file)); Sheet sheet = workbook.getSheetAt(0);
Forklaring:
- Opret en læserfil.
- Læs filen.
# 24) assertEquals (), assertNotEquals (), assertTrue () og assertFalse ()
Asserts ved hjælp af assertEquals (), assertNotEquals (), assertTrue () og assertFalse () for at sammenligne resultaterne.
Påstande bruges til at sammenligne de forventede og faktiske resultater. Bestået eller ikke bestået en test afgøres normalt ud fra resultatet af påstande. Forskellige typer hævder bruges i automatisering.
Syntaks:
Assert.assertEquals(message, “This text”); Assert.assertNotEquals(message, “This text”); Assert.assertTrue(result<0); Assert.assertFalse(result<0);
Forklaring:
- Når den forventede og faktiske værdi er den samme i den første kommando, går påstanden uden undtagelse. dvs. hvis meddelelsen er 'Denne tekst', så går påstanden over.
- I den anden kommando mislykkes påstanden med en undtagelse, når de forventede og faktiske værdier er ens. dvs. hvis meddelelsen er 'Denne tekst', mislykkes påstanden.
- I den tredje kommando, hvis betingelsen passerer, går påstanden over. dvs. hvis resultat<0, then the assertion passes.
- I den fjerde kommando, hvis betingelsen passerer, mislykkes påstanden. dvs. hvis resultat<0, then the assertion fails.
# 25) luk () og afslut ()
luk () og afslut () for at lukke vinduer og driverinstanser.
Disse kommandoer bruges i slutningen af hvert automatiseringsprogram.
Syntaks:
driver.close() driver.quit()
Forklaring:
Den første kommando lukker det aktuelle vindue.
Den anden kommando afslutter denne driverforekomst og lukker hvert tilknyttet vindue, der åbnes.
Konklusion
I denne vejledning introducerede vi forskellige WebDrivers almindelige og overdrevent anvendte kommandoer. Vi forsøgte at forklare kommandoerne med egnede eksempler og kodestykker.
Jeg har prøvet mit bedste for at forklare de mest populære WebDriver-kommandoer, som vi bruger rutinemæssigt i vores daglige arbejde. Disse kommandoer giver dig mulighed for at arbejde let med Selenium.
Jeg håber, det var interessant og kyndigt for dig.
Er du en automatiseringstester, der har prøvet nogen af ovenstående kommandoer? Eller har vi gået glip af nogen kommandoer, som du bruger i ovenstående liste?
Næste tutorial # 18 : I den kommende tutorial, ville vi diskutere om Webtabeller, rammer og dynamiske elementer som er en væsentlig del af ethvert webprojekt. Vi vil også dække undtagelse håndtering det vigtige emne i flere detaljer i en af de kommende Selen Tutorials.
Anbefalet læsning
- Agurk Selen Tutorial: Agurk Java Selen WebDriver Integration
- Introduktion til Selen WebDriver - Selen Tutorial # 8
- Sådan køres Selenium WebDriver i forskellige populære browsere
- Implementering af vores første WebDriver Script - Selenium WebDriver Tutorial # 10
- Ofte stillede spørgsmål om selen
- Sådan håndteres alarmer / pop op-vinduer i Selen WebDriver - Selen-vejledning nr. 16
- GeckoDriver Selen Tutorial: Sådan bruges GeckoDriver i Selen-projekter
- Implicit og eksplicit Vent i Selen WebDriver (Typer af Selen Waits)