top 25 selenium webdriver commands that you should know
Topp kommandoer for Selen WebDriver - En fenomenal guide for automatiseringstestere
Selenium WebDriver er et av de mest populære verktøyene for automatisering av åpen kildekode. De fleste av mine andre automatiseringstestere foretrekker kombinasjonen av WebDriver med Java.
I denne opplæringen vil jeg diskutere 25 rutinemessig brukte Selenium WebDriver-kommandoer sammen med deres bekymrede syntaks og enkle eksempler for enkel forståelse.
Hva du vil lære:
- Typer kommandoer i WebDriver
- Topp 7 Selen-kommandoer med detaljer
- Liste over 25 mer populære WebDriver-kommandoer og eksempler
- # 1) få ()
- # 2) getCurrentUrl ()
- # 3) findElement (By, by) og klikk ()
- # 4) er aktivert ()
- # 5) findElement (By, by) med sendKeys ()
- # 6) findElement (By, by) med getText ()
- # 7) Send inn ()
- # 8) findElements (av, av)
- # 9) findElements (By, by) med størrelse ()
- # 10) pageLoadTimeout (tid, enhet)
- # 11) implisitt vent ()
- # 12) inntil () og visibilityOfElementLocated ()
- # 13) inntil () og alertIsPresent ()
- # 14) getTitle ()
- # 15) Velg
- # 16) naviger ()
- # 17) getScreenshotAs ()
- # 18) moveToElement ()
- # 19) dragAndDrop ()
- # 20) switchTo () og godta (), avvis () og sendKeys ()
- # 21) getWindowHandle () og getWindowHandles ()
- # 22) getConnection ()
- # 23) SÅ
- # 24) assertEquals (), assertNotEquals (), assertTrue () og assertFalse ()
- # 25) lukk () og avslutt ()
- Konklusjon
- Anbefalt lesing
Typer kommandoer i WebDriver
I siste Selen-opplæring , vi diskuterte forskjellige typer varsler oppdaget mens du testet nettbaserte applikasjoner og deres effektive måter å håndtere. Vi diskuterte begge varslingstypene, dvs. “nettbaserte varsler” og “vindusbaserte varsler”. Vi gjorde deg også kjent med enda et Java-basert verktøy kalt 'Robot Class' for å håndtere Windows-basert popup.
Fremover i denne Selenium WebDriver-opplæringsserien , ville vi presse på forskjellige vanlig og rutinemessig brukte Selenium WebDriver-kommandoer . Vi vil presist og kort diskutere hver av disse Selen-kommandoene for å gjøre deg i stand til å bruke disse kommandoene effektivt når situasjonen oppstår.
Hver automatiserings Java-arbeidsfil starter med å lage en referanse til nettleseren som vi ønsker å bruke som nevnt i syntaksen nedenfor.
Det er flere metoder som er tilgjengelige fra Webdriver-grensesnittet. Disse metodene er tilgjengelige ved hjelp av forekomstvariabelen sjåfør i et enkelt format driver.methodName (); . Alle disse automatiseringsprosjektene inkluderer å kalle disse metodene og sammenligne og evaluere hva de faktisk returnerer.
Enkelt sagt kan vi generelt klassifisere Webdriver-kommandoer som:
- Nettleserkommandoer,
- Få kommandoer,
- Navigasjonskommandoer,
- Webelement-kommandoer,
- Handlingskommandoer og
- Resultatkommandoer.
Fra konteksten av manuell testing avgjøres resultatet av en test, enten PASS eller FAIL ut fra resultatkommandoene som vanligvis sammenligner forventede og faktiske resultater, og resten er Testcase-trinn.
Topp 7 Selen-kommandoer med detaljer
Bare for å ha en grov ide, vil vi diskutere følgende Selenium WebDriver-kommandoer og deres forskjellige versjoner:
- få() metoder
- Finne lenker etter linkText () og partialLinkText ()
- Velge flere elementer i en rullegardinmeny
- Send inn skjema
- Håndtering av iframes
- Lukk() og slutte() metoder
- Avvikshåndtering
# 1) get () Metoder
WebDriver-kommando | Bruk |
---|---|
getAttribute () | • Kommandoen brukes til å hente verdien til det angitte attributtet • Kommandoen krever en enkelt strengparameter som refererer til et attributt hvis verdi vi ønsker å kjenne, og returnerer en strengverdi som et resultat. driver.findElement (By.id ('findID')). getAttribute ('verdi'); |
få() | • Kommandoen starter en ny nettleser og åpnes den angitte URL-en i nettleserforekomsten • Kommandoen tar en enkelt strengtypeparameter som vanligvis er en URL til applikasjonen som testes • For Selenium IDE-brukere kan kommandoen se veldig ut som åpen kommando driver.get ('https://google.com'); |
getClass () | Kommandoen brukes til å hente Class-objektet som representerer kjøretidsklassen til dette objektet driver.getClass (); |
getCurrentUrl () | • Kommandoen brukes til å hente URL-adressen til nettsiden brukeren for øyeblikket har tilgang til • Kommandoen krever ingen parameter og returnerer en strengverdi driver.getCurrentUrl (); |
getPageSource () | • Kommandoen brukes til å hente sidekilden av websiden brukeren for øyeblikket åpner • Kommandoen krever ingen parameter og returnerer en strengverdi • Kommandoen kan brukes med forskjellige strengoperasjoner som inneholder () for å fastslå tilstedeværelsen av den angitte strengverdien boolsk resultat = driver.getPageSource (). inneholder ('Streng å finne'); |
getTitle () | • Kommandoen brukes til å hente tittelen på websiden brukeren for tiden jobber med. En nullstreng returneres hvis nettsiden ikke har noen tittel • Kommandoen krever ingen parameter og returnerer en trimmet strengverdi Streng tittel = driver.getTitle (); |
getText () | • Kommandoen brukes til å hente den indre teksten av det angitte webelementet • Kommandoen krever ingen parameter og returnerer en strengverdi • Det er også en av de mye brukte kommandoene for verifisering av meldinger, etiketter, feil osv. Som vises på websidene. String Text = driver.findElement (By.id ('Text')). GetText (); |
getWindowHandle () | • Kommandoen brukes til å takle situasjonen når vi har mer enn ett vindu å håndtere. • Kommandoen hjelper oss med å bytte til det nylig åpnede vinduet og utføre handlinger i det nye vinduet. Brukeren kan også bytte tilbake til forrige vindu hvis han / hun ønsker det. private String winHandleBefore; winHandleBefore = driver.getWindowHandle (); driver.switchTo (). vindu (winHandleBefore); |
getWindowHandles () | • Kommandoen ligner på “getWindowHandle ()” med den subtile forskjellen at det hjelper å håndtere flere vinduer, dvs. når vi må håndtere mer enn to vinduer. |
Kodebiten for “getWindowHandles ()” er gitt 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) Finne lenker etter linkText () og partialLinkText ()
La oss få tilgang til “google.com” og “abodeqa.com” ved hjelp av linkText () og partialLinText () metoder for WebDriver.
Ovennevnte lenker er tilgjengelige ved å bruke følgende kommandoer:
sjåfør .findElement (By.linkText ( 'Google' Klikk ();
sjåfør .findElement (By.linkText ( AbodeQA Klikk ();
Kommandoen finner elementet ved hjelp av lenketekst og klikker deretter på elementet, og brukeren vil dermed bli omdirigert til den tilsvarende siden.
Ovennevnte lenker kan også nås ved å bruke følgende kommandoer:
sjåfør .findElement (By.partialLinkText ( “Goo” Klikk ();
sjåfør .findElement (By.partialLinkText ( “Bolig” Klikk ();
Ovennevnte to kommandoer finner elementene basert på understrengen til lenken som er gitt i parentesen, og dermed finner partialLinkText () webelementet med den angitte understrengen og klikker deretter på den.
# 3) Velge flere elementer i en rullegardinmeny
Det er hovedsakelig to typer dropdown:
- Rullegardinmeny for enkeltvalg : En rullegardin som lar kun én verdi velges om gangen.
- Flervalg rullegardin : En rullegardin som lar flere verdier velges om gangen.
Tenk på HTML-koden nedenfor for en rullegardinmeny som kan velge flere verdier samtidig.
Red Green Yellow Grey
Kodebiten nedenfor illustrerer flere valg i rullegardinmenyen.
// 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) Send inn et skjema
De fleste eller nesten alle nettsteder har skjemaer som må fylles ut og sendes inn mens de tester en nettsøknad. Brukeren kan komme over flere typer skjemaer som påloggingsskjema, registreringsskjema, skjema for filopplasting, skjema for profiloppretting etc.
I WebDriver blir en bruker utnyttet med en metode som er spesielt opprettet for å sende inn et skjema. Brukeren kan også bruke klikkmetoden for å klikke på Send-knappen som erstatning for knappen Send.
Sjekk kodebiten nedenfor mot skjemaet for 'ny bruker' ovenfor:
// 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 finner innleveringsmetoden, lokaliserer den elementet og utløser sende inn() metode på det funnet webelementet.
# 5) Håndtering av iframes
Mens du automatiserer webapplikasjoner, kan det være situasjoner der vi er pålagt å håndtere flere bilder i et vindu. Dermed er testskriptutvikleren pålagt å bytte frem og tilbake mellom forskjellige rammer eller iframes for den faktiske faktum.
Et innebygd akronym som iframe brukes til å sette inn et annet dokument i det gjeldende HTML-dokumentet eller bare en webside på en annen webside ved å aktivere nesting.
Vurder følgende HTML-kode som har iframe på websiden:
Software Testing Help - iframe session
Ovenstående HTML-kode illustrerer tilstedeværelsen av en innebygd iframe i en annen iframe. For å kunne få tilgang til iframe-barnet, kreves det at brukeren navigerer til foreldrenes iframe først. Etter å ha utført den nødvendige operasjonen, kan det hende at en bruker blir bedt om å navigere tilbake til foreldrenes iframe for å håndtere det andre elementet på websiden.
Det er umulig hvis en bruker prøver å få tilgang til barnet iframe direkte uten å krysse til foreldren iframe først.
Velg iframe etter id
sjåfør .switchTo (). ramme ( ' ID på rammen ' );
Finne iframe ved hjelp av tagName
Mens du finner en iframe, kan brukeren få problemer hvis iframe ikke tilskrives standardegenskaper. Det blir en kompleks prosess for å finne rammen og bytte til den. For å spenne situasjonen, blir en bruker utnyttet for å finne en iframe ved hjelp av en tagName-metode som ligner på måten vi finner et annet webelement i WebDriver på.
driver.switchTo (). ramme (driver.findElements (By.tagName (“iframe”). get (0));
Ovennevnte kommando lokaliserer det første webelementet med det angitte tagName og bytter til den iframe. 'Get (0) brukes til å finne iframe med indeksverdien.' I linje med HTML-koden vår vil den ovennevnte kodesyntaksen føre til at programkontrollen bytter til 'ParentFrame'.
Finne iframe ved hjelp av indeksen:
a) ramme (indeks)
driver.switchTo (). ramme (0);
b) ramme (Navn på ramme)
driver.switchTo (). ramme ('rammens navn');
c) ramme (WebElement-element)
Velg Overordnet vindu
driver.switchTo (). defaultContent ();
Ovennevnte kommando bringer brukeren tilbake til det opprinnelige vinduet, dvs. ut av begge iframes.
# 6) lukk () og avslutt () metoder
Det er to typer kommandoer i WebDriver for å lukke forekomsten av nettleseren.
a) lukk () : WebDriver's close () -metode lukker nettleservinduet som brukeren for tiden jobber med, eller vi kan også si vinduet som nå blir åpnet av WebDriver. Kommandoen krever verken noen parameter eller returnerer noen verdi.
b) slutte () : I motsetning til metoden close () lukker quit () -metoden alle vinduene som programmet har åpnet. Samme som close () -metoden, kommandoen krever verken noen parameter eller returnerer den noen verdi.
Se kodebitene nedenfor:
sjåfør .Lukk(); // lukker bare et enkelt vindu som WebDriver-forekomsten nå har tilgang til
sjåfør .slutte(); // lukker alle vinduene som ble åpnet av WebDriver-forekomsten
# 7) Unntakshåndtering
Unntak er forholdene eller situasjonene som uventet stopper gjennomføringen av programmet.
Årsaker til slike forhold kan være:
- Feil introdusert av brukeren
- Feil generert av programmereren
- Feil generert av fysiske ressurser
For å håndtere disse uventede forholdene ble unntakshåndteringen konseptualisert.
Med hensyn til Java-kode som vi implementerer mens vi automatiserer en webapplikasjon, kan det være lukket i en blokk som er i stand til å gi en håndteringsmekanisme mot de feilaktige forholdene.
Fang et unntak
For å få et unntak bruker vi koden nedenfor
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 det oppstår noe unntak i prøveblokken / den beskyttede blokken, kontrollerer kjøringen for en fangstblokk for den samsvarende unntakstypen og sender unntaket til den uten å bryte programutførelsen.
Flere fangstblokker
try{ //Protected block } catch (ExceptionType1 e) { // catch block } catch (ExceptionType2 e) { // catch block } catch (ExceptionType3 e) { // catch block }
I koden ovenfor er det sannsynlig at et unntak blir fanget i den første fangstblokken hvis unntakstypen samsvarer. Hvis unntakstypen ikke stemmer overens, krysses unntaket til den andre fangstblokken og den tredje fangstblokken og så videre til alle fangstblokkene er besøkt.
WebDriver-betingelser og håndtering av unntak
Når vi ønsker å verifisere tilstedeværelsen av et hvilket som helst element på websiden ved hjelp av forskjellige WebDriver 's betingede kommandoer, antar WebDriver at webelementet skal være til stede på websiden. Hvis webelementet ikke er tilstede på websiden, kaster de betingede kommandoene et “NoSuchElementPresentException”. For å unngå slike unntak fra å stoppe programutførelsen, bruker vi mekanismer for unntakshåndtering. Se kodebiten nedenfor:
WebElement saveButton = driver.findElement(By.id('Save')); try{ if(saveButton.isDisplayed()){ saveButton.click(); } } catch(NoSuchElementException e){ e.printStackTrace(); }
Liste over 25 mer populære WebDriver-kommandoer og eksempler
Nedenfor er listen over topp 25 rutinemessig brukte Webdriver-kommandoer som hver automatiseringstester må vite.
La oss gå gjennom disse kommandoene en etter en i detalj.
Videre lesing => Selen WebDriver Tutorial
# 1) få ()
Kommandoer ved hjelp av get () for å åpne en URL i gjeldende nettleser.
Kommandoen nedenfor åpner den angitte URL-en, ‘https://www.softwaretestinghelp.com’ i nettleseren.
Syntaks:
driver.get('https://www.softwaretestinghelp.com');
Forklaring:
- Naviger til URL-en https://www.softwaretestinghelp.com
# 2) getCurrentUrl ()
Kommando ved hjelp av getCurrentUrl () for å sjekke om URL-en er riktig.
Kommandoen nedenfor får gjeldende URL i strengformat.
Syntaks:
hva åpner jeg jar-filer med
driver.getCurrentUrl();
Vi bruker vanligvis denne metoden i kommandoer for å sjekke om vi har navigert til høyre side som forventet. For det må vi bruke Assert som vist nedenfor Eksempel .
Syntaks:
Assert.assertEquals(expectedUrl, driver.getCurrentUrl());
Hvor expectUrl er URL-en som forventes i strengformat.
Forklaring:
- Sjekk og bekreft at URL-adressen som er lastet forblir den samme og at riktig side er lastet inn.
# 3) findElement (By, by) og klikk ()
findElement (By, by) og klikk () for å klikke på et hvilket som helst element på websiden.
Metoden findElement (By, by) søker og lokaliserer det første elementet på den nåværende siden, som samsvarer med kriteriene gitt som parameter. Denne metoden brukes vanligvis i kommandoer for å simulere brukerhandlinger som å klikke, sende inn, skrive osv.
Kommandoen nedenfor søker og lokaliserer det første elementet på nettsiden med id 'submit1' og klikker på den hvis den ikke er dekket.
Syntaks:
driver.findElement(By.id('submit1')).click();
Elementet kan lokaliseres ved hjelp av ID , Navn , Klasse Navn , Merkens navn , Linktekst & Delvis lenketekst , CSS-velger og X Sti .
Forklaring:
- Se etter ønsket Send-knapp.
- Klikk på knappen.
Kommandoen nedenfor velger et element fra listeboksen.
Syntaks:
WebElement roleDropdown = driver.findElement(By.id('name1'); roleDropdown.click();
Forklaring:
- Søk og finn listeelementet etter ID “name1”.
- Klikk på elementet.
# 4) er aktivert ()
isEnabled () for å kontrollere om elementet er aktivert eller deaktivert i Selenium WebDriver.
For å sjekke om et bestemt element er aktivert på en webside, bruker vi metoden isEnabled ().
Syntaks:
boolean textBox = driver.findElement(By.xpath('//input(@name='textbox1')')).isEnabled();
Forklaring:
- Finner elementet på websiden i henhold til xpath og sjekker om elementet er aktivert.
# 5) findElement (By, by) med sendKeys ()
findElement (By, by) med sendKeys () for å skrive inn skjemafeltene.
Form valideringskontroller ved å angi de forskjellige brukerinngangene som ofte kreves i automatiseringstesting. Vi bruker findElement (By, by) for å finne feltene og sendKeys () for å skrive innhold i et redigerbart felt.
Kommandoen nedenfor bruker navnelokatoren til å finne skjemafeltet og skriver 'Aaron' i det.
Syntaks:
driver.findElement(By.name('name')).sendkeys('Aaron');
Forklaring:
- Se etter ønsket navnefelt i skjemaet.
- Skriv inn verdien 'Aaron' i den.
# 6) findElement (By, by) med getText ()
findElement (By, by) med getText () for å lagre verdien av målrettet webelement.
GetText () er en metode som gir deg den indre teksten til webelementet. Få tekst er teksten i HTML-kodene.
Koden nedenfor finner elementet med tagName “select” og får teksten inne i taggen og lagrer den i en variabel rullegardin. Nå kan String dropDown brukes til videre handlinger i programmet.
Syntaks:
String dropDown = driver.findElement(By.tagName('dropdown1')).getText();
Forklaring:
- Se etter det obligatoriske feltet i skjemaet som har taggen 'dropdown1'.
- Ta teksten inn i HTML-koden.
- Lagre teksten i strengobjektet 'DropDown'.
# 7) Send inn ()
Send inn () for å sende inn et webskjema.
Klikk () -metoden som vi diskuterte ovenfor, kan brukes til å klikke på koblinger eller knapper. Send inn () er et bedre alternativ for å klikke () hvis elementet som skal klikkes er en send-knapp. Send-knappen er inne i HTML-skjemaet og merketypen er 'send' (ikke 'knapp').
Send () gjør livet lettere ved automatisk å finne knappen og metoden som kan legges til et hvilket som helst annet felt som navn eller e-postadresse. I tilfelle klikk må vi bruke findElement (By, by) -metoden og spesifisere de riktige lokalisatorene.
I noen scenarier der handlingen utføres gjennom andre elementer enn en knapp, sender () verk og klikk () vil ikke.
Syntaks:
driver.findElement(By.xpath('//input(@name='comments')')).submit();
Forklaring:
- Finn element i den gitte x-banen med navnet ‘kommentarer’.
- Send inn skjemaet.
# 8) findElements (av, av)
findElements (By, by) for å få listen over webelementer.
Noen ganger kan det være lurt å skrive ut eller utføre en handling på en liste over webelementer som lenker eller inndatafelt på en webside. I et slikt tilfelle bruker vi findElements (By, by).
Syntaks:
List allChoices = dropDown.findElements(By.xpath('.//fruitoption'));
Forklaring:
- En liste over alle webelementene med spesifisert xpath er lagret i webelementlisten allChoices.
# 9) findElements (By, by) med størrelse ()
findElements (By, by) med størrelse () for å verifisere om et element er til stede.
findElements (By, by) kan brukes til å verifisere om et element faktisk er tilstede på websiden.
Kommandoen nedenfor brukes hvis vi vil bekrefte 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:
- Finn element er spesifisert i xpath med id ‘checkbox2’.
- I henhold til størrelsen på elementlisten blir den boolske checkIfElementPresent satt til SANT eller FALSK.
# 10) pageLoadTimeout (tid, enhet)
pageLoadTimeout (tid, enhet) for å stille inn tidspunktet for siden som skal lastes inn.
Noen ganger på grunn av serverproblemer eller nettverksforsinkelser, kan det ta mer enn vanlig tid å laste en side. Dette kan føre til en feil i programmet. For å unngå dette, setter vi ventetid og pageLoadTimeout () er en av slike metoder. Dette vil vanligvis følge en get () - kommando.
Syntaks:
driver.manage().timeouts().pageLoadTimeout(500, SECONDS);
Forklaring:
- Vent i 500 sekunder for en side skal lastes inn.
# 11) implisitt vent ()
implicitlyWait () for å angi ventetid før du søker og finner et webelement.
Hva skjer hvis Webdriver prøver å finne et element før nettsiden lastes inn og elementet vises? NoSuchElementExeption vil bli kastet. For å unngå dette, kan vi legge til en kommando for å implisitt vente en viss tid før vi finner elementet.
Syntaks:
driver.manage().timeouts().implicitlyWait(1000, TimeUnit.SECONDS);
Forklaring:
- Vent implisitt i 1000 sekunder før du utfører neste linje i koden.
# 12) inntil () og visibilityOfElementLocated ()
til () fra WebdriverWait og visibilityOfElementLocated () fra ExpectedConditions for å vente eksplisitt til et element er synlig på nettsiden.
Det blir vanskelig å håndtere saker der et element tar for lang tid å være synlig på programvarens webside som bruker implisitt ventetid. I dette tilfellet kan vi skrive en kommentar for å vente til elementet vises på nettsiden. Denne kommandoen bruker en kombinasjon av til () -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 linjen sier hvor lang tid å vente på 10 sekunder.
- Den andre tilstanden sier en forventet tilstand å vente på. Her er det et element med id’navn ’i nevnte xpath.
# 13) inntil () og alertIsPresent ()
til () fra WebdriverWait og alertIsPresent () fra ExpectedConditions å vente eksplisitt til et varsel vises.
I noen scenarier må vi vente på varsler for å fortsette testen. I dette tilfellet bruker vi en kommando som bruker til () -metoden fra WebdriverWait-klassen og alertIsPresent () -metoden fra ExpectedConditions-klassen.
Se kommandoen nedenfor:
WebDriverWait wait = new WebDriverWait(driver, 10); WebElement element = wait.until(ExpectedConditions.alertIsPresent() );
Forklaring:
- Den første linjen sier hvor lang tid det er å vente - det vil si 10 sekunder.
- Den andre tilstanden sier en forventet tilstand å vente på. Her er det en varselmelding.
# 14) getTitle ()
getTitle () for å få sidetittel i Selenium webdriver.
Syntaks:
String title = driver.getTitle(); System.out.println(title);
Dette brukes vanligvis til å skrive ut tittelen i utdataloggene.
Forklaring:
- Få tittelen på websiden og lagre den i tittel på strengobjektet.
- Skriv ut verdien som er lagret i tittelen til utgangsloggene.
# 15) Velg
Velg klasse for å velge og fravelge verdier fra rullegardinmenyen i Selenium WebDriver.
Vi har ofte rullegardinrelaterte scenarier. Metoder fra Select-klassen brukes til å håndtere dette. Vi kan bruke 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:
- Finn rullegardin ved hjelp av ID-en 'velg'.
- Velg den synlige teksten 'Apple' fra rullegardinmenyen.
WebElement mySelectedElement = driver.findElement(By.id('select')); Select dropdown= new Select(mySelectedElement); Dropdown.selectByValue('Apple')
Forklaring:
- Finn rullegardinmenyen ved hjelp av IDen 'velg'.
- Velg teksten med verdien 'Apple' fra rullegardinmenyen.
WebElement mySelectedElement = driver.findElement(By.id('select')); Select dropdown= new Select(mySelectedElement); listbox.selectByIndex(1);
Forklaring:
- Finn rullegardinmenyen ved hjelp av IDen 'velg'.
- Velg rullegardinelementet med indeksverdi ‘1’ fra rullegardinmenyen (Andre element).
I likhet med select, kan vi fravelge verdier fra rullegardinmenyen ved hjelp av lignende kommandoer.
Kontroller kommandoene:
WebElement mySelectedElement = driver.findElement(By.id('select')); Select dropdown= new Select(mySelectedElement); dropdown.deselectByVisibleText('Apple');
Forklaring:
- Finn rullegardinmenyen ved hjelp av IDen 'velg'.
- Fjern markeringen av den synlige teksten 'Apple' fra rullegardinmenyen.
WebElement mySelectedElement = driver.findElement(By.id('select')); Select dropdown= new Select(mySelectedElement); Dropdown.deselectByValue('Apple');
Forklaring:
- Finn rullegardinmenyen ved hjelp av IDen 'velg'.
- Fjern markeringen av teksten med verdien 'Apple' fra rullegardinmenyen.
WebElement mySelectedElement = driver.findElement(By.id('select')); Select dropdown= new Select(mySelectedElement); listbox.deselectByIndex(1);
Forklaring:
- Finn rullegardinmenyen ved hjelp av IDen 'velg'.
- Avvelg rullegardinmenyen med indeksverdien ‘1’ fra rullegardinmenyen (Andre element).
naviger () for å navigere mellom URL-ene.
Vi ser ofte scenarier der vi kanskje vil navigere fra landings-URL-en og deretter gå tilbake eller fremover. I slike tilfeller, i stedet for å bruke get (), kan vi bruke navigate (). I Navigate kan vi bruke tilbake () og forward () metoder uten å spesifisere URL-ene.
Syntaks:
driver.navigate().to('https://www.softwaretestinghelp.com'); driver.navigate().back(); driver.navigate().forward();
Forklaring:
- Naviger til https://www.softwaretestinghelp.com
- Naviger tilbake.
- Naviger fremover.
# 17) getScreenshotAs ()
getScreenshotAs () for å fange hele skjermbildet på siden i Selenium WebDriver.
Denne er ofte nødvendig for å lagre arbeidsopplysningene dine, eller noen ganger for å sjekke utgangene manuelt. Kommandoen nedenfor brukes til å ta et skjermbilde og lagre i en utdatafil.
Syntaks:
File shot = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE); FileUtils.copyFile(shot, new File('D:\ shot1.jpg'));
Forklaring:
- Ta et skjermbilde og lagre filen i objektbildet.
- Lagre filen i D-stasjonen som shot1.png.
# 18) moveToElement ()
moveToElement () fra Handling-klassen for å simulere musesvingningseffekten.
Det er scenarier der vi trenger å sveve over webelementer som over menyen for å se undermeny, lenker for å se fargeendringer osv. I disse tilfellene bruker vi handlingsklasse. Ta en titt på syntaksen nedenfor for Action-klassen.
Syntaks:
Actions actions = new Actions(driver); WebElement mouseHover = driver.findElement(By.xpath('//div(@id='mainmenu1')/div')); actions.moveToElement(mouseHover); actions.perform();
Forklaring
- Finn og finn nettelementet med div id ‘hovedmeny1’.
- Flytt musepekeren til elementet.
# 19) dragAndDrop ()
dragAndDrop () fra Handlingsklasse for å dra et element og slippe det på et annet element.
I noen scenarier vil vi kanskje dra elementer. For eksempel, dra et bilde til scenen. I dette tilfellet kan vi bruke handlingsklassen.
I dragAndDrop-metoden passerer vi de to parametrene, Source locator - elementet vi vil dra og Destination locator - elementet vi vil slippe 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:
- Finn og finn kildenettelementet.
- Finn og finn destinasjonsnettelementet.
- Dra og slipp kildeelementet på destinasjonselementet.
# 20) switchTo () og godta (), avvis () og sendKeys ()
switchTo () og godta (), avvis () og sendKeys () metoder fra Alert class for å bytte til popup varsler og håndtere dem.
For å bytte til varsler, popup-vinduer og håndtere dem, bruker vi en kombinasjon av bytte til() og godta (), avskjed () metoder fra Alert-klassen.
Syntaks:
Alert alert = driver.switchTo().alert(); alert.sendKeys('This Is Softwaretestinghelp'); alert.accept()
Forklaring:
- Bytt til varslingsvinduet.
- Skriv inn “This Is Softwaretestinghelp” i varselet.
- Godta varselet og lukk det.
alert.dismiss () kan brukes til å avvise varselet.
# 21) getWindowHandle () og getWindowHandles ()
getWindowHandle () og getWindowHandles () for å håndtere flere Windows i Selenium WebDriver.
nettsteder som lar deg laste ned youtube-videoer
Det er mange tilfeller der webapplikasjoner har mange rammer eller vinduer.
Dette er for det meste annonser eller popup-vinduer for informasjon. Vi kan håndtere flere vinduer ved hjelp av Windows Handlers. Webdriver lagrer et unikt vindus-ID for hvert vindu. Vi bruker denne IDen for å håndtere dem.
Syntaks:
String handle= driver.getWindowHandle(); Set handle= driver.getWindowHandles();
Ovennevnte kommandoer brukes til å hente vindu-ID for henholdsvis det nåværende vinduet og alle vinduene. Se løkken nedenfor for å se hvordan vi kan gå til hvert vindu gjennom for løkke.
for (String handle : driver.getWindowHandles()){ driver.switchTo().window(handle); }
Forklaring:
- For hvert vinduhåndterings-ID fra driver.getWindowHandles (), bytt til det vindu-ID-en.
# 22) getConnection ()
getConnection () fra DriverManager for å starte databaseforbindelse.
For å starte en databaseforbindelse bruker vi getConnection fra DriverManager-klassen.
Syntaks:
DriverManager.getConnection(URL, 'username', 'password' )
Forklaring:
- Koble til databasen via URL og legitimasjon.
# 23) SÅ
POI for å lese fra excel-filene.
I datadrevet testing lagrer vi ofte innganger i excel-fil og leser den. For å gjøre dette i WebDriver importerer vi POI-pakke og bruker deretter kommandoen nedenfor.
Syntaks:
Workbook workbook = WorkbookFactory.create(new FileInputStream(file)); Sheet sheet = workbook.getSheetAt(0);
Forklaring:
- Lag en leserfil.
- Les filen.
# 24) assertEquals (), assertNotEquals (), assertTrue () og assertFalse ()
Påstander ved hjelp av assertEquals (), assertNotEquals (), assertTrue () og assertFalse () for å sammenligne resultatene.
Påstander brukes til å sammenligne forventede og faktiske resultater. Bestått eller ikke bestått test avgjøres vanligvis ut fra resultatet av påstander. Ulike typer påstander brukes i automatisering.
Syntaks:
Assert.assertEquals(message, “This text”); Assert.assertNotEquals(message, “This text”); Assert.assertTrue(result<0); Assert.assertFalse(result<0);
Forklaring:
- I den første kommandoen går påstanden uten unntak når de forventede og faktiske verdiene er like. dvs. hvis meldingen er 'Denne teksten', så går påstanden over.
- I den andre kommandoen mislykkes påstanden med unntak når forventede og faktiske verdier er like. dvs. hvis meldingen er 'Denne teksten', mislykkes påstanden.
- I den tredje kommandoen, hvis tilstanden går over, går påstanden. dvs. hvis resultat<0, then the assertion passes.
- I den fjerde kommandoen mislykkes påstanden hvis tilstanden går over. dvs. hvis resultat<0, then the assertion fails.
# 25) lukk () og avslutt ()
lukk () og avslutt () for å lukke vinduer og driverforekomster.
Disse kommandoene brukes på slutten av hvert automatiseringsprogram.
Syntaks:
driver.close() driver.quit()
Forklaring:
Den første kommandoen lukker det nåværende vinduet.
Den andre kommandoen avslutter denne driverforekomsten og lukker hvert tilknyttet vindu som åpnes.
Konklusjon
I denne opplæringen introduserte vi forskjellige WebDrivers vanlige og overdrevent brukte kommandoer. Vi prøvde å forklare kommandoene med passende eksempler og kodebiter.
Jeg har prøvd mitt beste for å forklare de mest populære WebDriver-kommandoene som vi bruker rutinemessig i vårt daglige arbeid. Disse kommandoene lar deg jobbe enkelt med Selenium.
Jeg håper det var interessant og kunnskapsrik for deg.
Er du en automatiseringstester som har prøvd noen av de ovennevnte kommandoene? Eller har vi gått glipp av noen kommandoer du bruker i listen ovenfor?
Neste opplæring # 18 : I den kommende opplæringen vil vi diskutere om Nettbord, rammer og dynamiske elementer som er en viktig del av ethvert webprosjekt. Vi vil også dekke avvikshåndtering det viktige emnet i flere detaljer i en av de kommende Selenium-opplæringene.
Anbefalt lesing
- Agurk Selen Tutorial: Agurk Java Selen WebDriver Integration
- Introduksjon til Selen WebDriver - Selenium Tutorial # 8
- Hvordan kjøre Selen WebDriver i forskjellige populære nettlesere
- Implementering av vårt første WebDriver Script - Selenium WebDriver Tutorial # 10
- Vanlige spørsmål om selen
- Hvordan håndtere varsler / popup-vinduer i Selen WebDriver - Selenium-veiledning nr. 16
- GeckoDriver Selenium-opplæring: Hvordan bruke GeckoDriver i Selen-prosjekter
- Implisitt og eksplisitt ventetid i Selen WebDriver (Typer Selen Waits)