top 25 selenium webdriver commands that you should know
De bästa kommandona för Selen WebDriver - En fenomenal guide för automatiseringstestare
Selenium WebDriver är ett av de mest populära verktyg för automatisering av webbplatser med öppen källkod. De flesta av mina andra automatiseringstestare föredrar kombinationen av WebDriver med Java.
I denna handledning kommer jag att diskutera 25 rutinmässigt använda Selenium WebDriver-kommandon tillsammans med deras berörda syntax och enkla exempel för att du ska förstå det lätt.
Vad du kommer att lära dig:
- Typer av kommandon i WebDriver
- Topp 7 Selen-kommandon med detaljer
- Lista över 25 mer populära WebDriver-kommandon och exempel
- # 1) få ()
- # 2) getCurrentUrl ()
- # 3) findElement (By, by) och klicka på ()
- # 4) isEnabled ()
- # 5) findElement (av, av) med sendKeys ()
- # 6) findElement (av, av) med getText ()
- # 7) Skicka ()
- # 8) findElements (av, av)
- # 9) findElements (av, av) med storlek ()
- # 10) pageLoadTimeout (tid, enhet)
- # 11) implicitWait ()
- # 12) till () och visibilityOfElementLocated ()
- # 13) till () och alertIsPresent ()
- # 14) getTitle ()
- # 15) Välj
- # 16) navigera ()
- # 17) getScreenshotAs ()
- # 18) moveToElement ()
- # 19) dragAndDrop ()
- # 20) switchTo () och acceptera (), avvisa () och sendKeys ()
- # 21) getWindowHandle () och getWindowHandles ()
- # 22) getConnection ()
- # 23) DANNA
- # 24) assertEquals (), assertNotEquals (), assertTrue () och assertFalse ()
- # 25) stäng () och avsluta ()
- Slutsats
- Rekommenderad läsning
Typer av kommandon i WebDriver
I senaste Selen-handledning , vi diskuterade olika typer av varningar när vi testade webbaserade applikationer och deras effektiva sätt att hantera. Vi diskuterade båda typerna av varningar, dvs 'webbaserade varningar' och 'fönsterbaserade varningar' långt. Vi gjorde dig också bekant med ännu ett Java-baserat verktyg som heter 'Robot Class' för att hantera Windows-baserad popup.
Framåt framåt denna Selenium WebDriver-handledningsserie , skulle vi pressa på olika vanliga och rutinmässigt använda Selenium WebDriver-kommandon . Vi kommer noggrant och kort att diskutera vart och ett av dessa Selen-kommandon så att du kan använda dessa kommandon effektivt när situationen uppstår.
Varje automatiserad Java-arbetsfil börjar med att skapa en referens till webbläsaren som vi vill använda som nämns i syntaxen nedan.
Det finns flera metoder som är tillgängliga från Webdriver-gränssnittet. Dessa metoder nås med instansvariabeln förare i ett enkelt format driver.methodName (); . Alla dessa automatiseringsprojekt inkluderar att anropa dessa metoder och jämföra och utvärdera vad de faktiskt returnerar.
Enkelt uttryckt kan vi generellt klassificera Webdriver-kommandon som:
- Webbläsarkommandon,
- Få kommandon,
- Navigeringskommandon,
- Webelement-kommandon,
- Åtgärdskommandon och
- Resultatkommandon.
Ur kontext av manuell testning bestäms resultatet av ett test, antingen PASS eller FAIL utifrån resultatkommandona som vanligtvis jämför de förväntade och faktiska resultaten och resten är Testcase-steg.
Topp 7 Selen-kommandon med detaljer
Bara för att ha en grov uppfattning skulle vi diskutera följande Selenium WebDriver-kommandon och deras olika versioner:
- skaffa sig() metoder
- Hitta länkar efter linkText () och partialLinkText ()
- Välja flera objekt i en rullgardinsmeny
- Skicka ett formulär
- Hantering av iframes
- stänga() och sluta med() metoder
- Undantagshantering
# 1) get () Metoder
WebDriver-kommando | Användande |
---|---|
getAttribute () | • Kommandot används för att hämta värdet för det angivna attributet • Kommandot kräver en enda strängparameter som hänvisar till ett attribut vars värde vi vill veta och returnerar ett strängvärde som ett resultat. driver.findElement (By.id ('findID')). getAttribute ('värde'); |
skaffa sig() | • Kommandot startar en ny webbläsare och öppnas den angivna URL: en i webbläsarinstansen • Kommandot tar en enda strängtypsparameter som vanligtvis är en URL för applikation som testas • För Selenium IDE-användare kan kommandot se mycket ut som öppet kommando driver.get ('https://google.com'); |
getClass () | Kommandot används för att hämta klassobjektet som representerar runtime-klassen för detta objekt driver.getClass (); |
getCurrentUrl () | • Kommandot används för att hämta webbadressen till den webbsida som användaren för närvarande besöker • Kommandot kräver ingen parameter och returnerar ett strängvärde driver.getCurrentUrl (); |
getPageSource () | • Kommandot används för att hämta sidkällan på webbsidan som användaren för närvarande besöker • Kommandot kräver ingen parameter och returnerar ett strängvärde • Kommandot kan användas med olika strängåtgärder som innehåller () för att fastställa närvaron av det angivna strängvärdet booleskt resultat = driver.getPageSource (). innehåller ('Sträng att hitta'); |
getTitle () | • Kommandot används för att hämta titeln på webbsidan som användaren för närvarande arbetar med. En nullsträng returneras om webbsidan inte har någon titel • Kommandot kräver ingen parameter och returnerar ett trimmat strängvärde String title = driver.getTitle (); |
getText () | • Kommandot används för att hämta den inre texten av det angivna webbelementet • Kommandot kräver ingen parameter och returnerar ett strängvärde • Det är också en av de allmänt använda kommandona för verifiering av meddelanden, etiketter, fel etc. som visas på webbsidorna. Strängtext = driver.findElement (By.id ('Text')). GetText (); |
getWindowHandle () | • Kommandot används för att ta itu med situationen när vi har mer än ett fönster att hantera. • Kommandot hjälper oss att växla till det nyöppnade fönstret och utföra åtgärder i det nya fönstret. Användaren kan också växla tillbaka till föregående fönster om han / hon önskar. privat sträng winHandleBefore; winHandleBefore = driver.getWindowHandle (); driver.switchTo (). fönster (winHandleBefore); |
getWindowHandles () | • Kommandot liknar “getWindowHandle ()” med den subtila skillnaden att det hjälper till att hantera flera fönster, dvs. när vi måste hantera mer än två fönster. |
Kodavsnittet för “getWindowHandles ()” ges nedan:
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) Hitta länkar efter linkText () och partialLinkText ()
Låt oss komma åt “google.com” och “abodeqa.com” med linkText () och partialLinText () metoder för WebDriver.
Ovan nämnda länkar kan nås med följande kommandon:
förare .findElement (By.linkText ( 'Google' )).klick();
förare .findElement (By.linkText ( AbodeQA )).klick();
Kommandot hittar elementet med hjälp av länktext och klickar sedan på det elementet så att användaren omdirigeras till motsvarande sida.
Ovan nämnda länkar kan också nås med följande kommandon:
förare .findElement (By.partialLinkText ( 'Gegga' )).klick();
förare .findElement (By.partialLinkText ( 'boning' )).klick();
Ovanstående två kommandon hittar elementen baserat på understrängen för länken som tillhandahålls inom parentes och därmed hittar partialLinkText () webbelementet med den angivna understrängen och klickar sedan på den.
# 3) Välja flera objekt i en rullgardinsmeny
Det finns främst två typer av nedrullningar:
- Listrutan för enstaka val : En rullgardinsmeny som gör att endast enstaka värde kan väljas åt gången.
- Listrutan för flera val : En rullgardinsmeny som gör att flera värden kan väljas åt gången.
Tänk på HTML-koden nedan för en rullgardinsmeny som kan välja flera värden samtidigt.
Red Green Yellow Grey
Kodavsnittet nedan illustrerar flera val i en rullgardinsmeny.
// 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) Skicka ett formulär
De flesta eller nästan alla webbplatser har formulär som måste fyllas i och skickas när man testar en webbapplikation. Användaren kan stöta på flera typer av formulär som inloggningsformulär, registreringsformulär, filöverföringsformulär, profilskapande formulär etc.
I WebDriver utnyttjas en användare med en metod som är specifikt skapad för att skicka ett formulär. Användaren kan också använda klickmetoden för att klicka på knappen Skicka som en ersättning för knappen Skicka.
Kolla in kodavsnittet nedan mot ovanstående 'nya användare' -formulär:
// 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 hittar inlämningsmetoden lokaliserar den elementet och utlöser Skicka in() metod på det hittade webbelementet.
# 5) Hantering av iframes
Vid automatisering av webbapplikationer kan det finnas situationer där vi måste hantera flera ramar i ett fönster. Således måste testskriptutvecklaren växla fram och tillbaka mellan olika ramar eller iframes för den faktiska faktum.
En inramad akronym som iframe används för att infoga ett annat dokument i det aktuella HTML-dokumentet eller helt enkelt en webbsida till en annan webbsida genom att aktivera kapsling.
Tänk på följande HTML-kod med iframe på webbsidan:
Software Testing Help - iframe session
Ovanstående HTML-kod illustrerar närvaron av en inbäddad iframe i en annan iframe. För att kunna komma åt barnet iframe krävs en användare för att navigera till den överordnade iframe först. Efter att ha utfört den nödvändiga åtgärden kan en användare behöva navigera tillbaka till den överordnade iframe för att hantera det andra elementet på webbsidan.
Det är omöjligt om en användare försöker komma åt barnet iframe direkt utan att gå till föräldern iframe först.
Välj iframe efter id
förare .switchTo (). ram ( ' Ramen ID ' );
Lokalisera iframe med tagName
Under lokalisering av en iframe kan användaren möta problem om iframe inte tillskrivs standardegenskaper. Det blir en komplex process för att lokalisera ramen och växla till den. För att spänna fast situationen utnyttjas en användare för att hitta en iframe med en tagName-metod som liknar det sätt vi hittar något annat webbelement i WebDriver.
driver.switchTo (). frame (driver.findElements (By.tagName (“iframe”). get (0));
Ovanstående kommando lokaliserar det första webbelementet med det angivna tagName och byter till den iframe. 'Get (0) används för att hitta iframe med indexvärdet.' I linje med vår HTML-kod skulle ovanstående kodsyntax leda programkontrollen till att växla till 'ParentFrame'.
Hitta iframe med hjälp av index:
a) ram (index)
driver.switchTo (). ram (0);
b) ram (Namn på ram)
driver.switchTo (). ram ('ramens namn');
c) ram (WebElement-element)
Välj Föräldrafönster
driver.switchTo (). defaultContent ();
Ovanstående kommando tar användaren tillbaka till det ursprungliga fönstret, dvs från båda iframes.
# 6) stäng metoder () och avsluta ()
Det finns två typer av kommandon i WebDriver för att stänga webbläsarinstansen.
a) stäng () : WebDriver's close () -metod stänger webbläsarfönstret som användaren för närvarande arbetar med eller vi kan också säga fönstret som för närvarande nås av WebDriver. Kommandot kräver varken någon parameter eller returnerar något värde.
b) sluta () : Till skillnad från close () -metoden stänger metoden quit () alla fönster som programmet har öppnat. Samma som close () -metoden, kommandot kräver varken någon parameter eller returnerar något värde.
Se nedanstående kodavsnitt:
förare .stänga(); // stänger endast ett enda fönster som nås av WebDriver-instansen för närvarande
förare .sluta med(); // stänger alla fönster som öppnades av instansen WebDriver
# 7) Undantagshantering
Undantag är de villkor eller situationer som oväntat stoppar programkörningen.
Orsaker till sådana förhållanden kan vara:
- Fel introducerade av användaren
- Fel som genereras av programmeraren
- Fel som genereras av fysiska resurser
Således hanterades undantagshantering för att hantera dessa oväntade förhållanden.
När det gäller Java-kod som vi implementerar när vi automatiserar en webbapplikation kan det omslutas i ett block som kan tillhandahålla en hanteringsmekanism mot felaktiga förhållanden.
Fångar ett undantag
För att få ett undantag använder vi nedanstående kodblock
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 }
Om något undantag förekommer i försöksblocket / skyddat block, kontrollerar körningen efter ett fångstblock för matchande undantagstyp och skickar undantaget till det utan att bryta programkörningen.
Flera fångstblock
try{ //Protected block } catch (ExceptionType1 e) { // catch block } catch (ExceptionType2 e) { // catch block } catch (ExceptionType3 e) { // catch block }
I ovanstående kod kommer sannolikt ett undantag att fångas i det första fångstblocket om undantagstypen matchar. Om undantagstypen inte matchar passeras undantaget till det andra fångstblocket och det tredje fångstblocket och så vidare tills alla fångstblocken besöks.
WebDriver-villkor och hantering av undantag
När vi strävar efter att verifiera närvaron av något element på webbsidan med hjälp av olika WebDrivers villkorliga kommandon, förutsätter WebDriver att webbelementet ska finnas på webbsidan. Om webbelementet inte finns på webbsidan, kastar de villkorliga kommandona ett “NoSuchElementPresentException”. För att undvika sådana undantag från att stoppa programkörningen använder vi mekanismer för undantagshantering. Se kodavsnittet nedan:
WebElement saveButton = driver.findElement(By.id('Save')); try{ if(saveButton.isDisplayed()){ saveButton.click(); } } catch(NoSuchElementException e){ e.printStackTrace(); }
Lista över 25 mer populära WebDriver-kommandon och exempel
Nedan följer listan över de 25 vanligaste Webdriver-kommandona som varje Automation Tester måste känna till.
Låt oss gå igenom dessa kommandon en efter en i detalj.
Ytterligare läsning => Selen WebDriver-handledning
# 1) få ()
Kommandot med get () för att öppna en URL i den aktuella webbläsaren.
Kommandot nedan öppnar den angivna URL: n, https://www.softwaretestinghelp.com i webbläsaren.
Syntax:
driver.get('https://www.softwaretestinghelp.com');
Förklaring:
- Navigera till webbadressen https://www.softwaretestinghelp.com
# 2) getCurrentUrl ()
Kommando med getCurrentUrl () för att kontrollera om webbadressen är korrekt.
Kommandot nedan får den aktuella URL: en i strängformat.
Syntax:
vad öppnar jag jar-filer med
driver.getCurrentUrl();
Vi använder vanligtvis denna metod i kommandon för att kontrollera om vi har navigerat till rätt sida som förväntat. För det måste vi använda Assert som visas nedan Exempel .
Syntax:
Assert.assertEquals(expectedUrl, driver.getCurrentUrl());
Där expectUrl är den URL som förväntas i strängformat.
Förklaring:
- Kontrollera och verifiera att den laddade URL: en är densamma och att rätt sida laddas.
# 3) findElement (By, by) och klicka på ()
findElement (By, by) och klicka () för att klicka på valfritt element på webbsidan.
Metoden findElement (By, by) söker och lokaliserar det första elementet på den aktuella sidan, vilket matchar de kriterier som anges som parameter. Denna metod används vanligtvis i kommandon för att simulera användaråtgärder som klicka, skicka, typ etc.
Kommandot nedan söker och lokaliserar det första elementet på webbsidan med id ”submit1” och klickar på det om det inte täcks.
Syntax:
driver.findElement(By.id('submit1')).click();
Elementet kan lokaliseras med ID , namn , Klass namn , Taggnamn , Länktext & Partiell länktext , CSS-väljare och X sökväg .
Förklaring:
- Leta efter önskad Skicka-knapp.
- Klicka på knappen.
Kommandot nedan väljer ett objekt från listrutan.
Syntax:
WebElement roleDropdown = driver.findElement(By.id('name1'); roleDropdown.click();
Förklaring:
- Sök och lokalisera listobjektet efter id 'namn1'.
- Klicka på det objektet.
# 4) isEnabled ()
isEnabled () för att kontrollera om elementet är aktiverat eller inaktiverat i Selenium WebDriver.
För att kontrollera om ett visst element är aktiverat på en webbsida använder vi metoden isEnabled ().
Syntax:
boolean textBox = driver.findElement(By.xpath('//input(@name='textbox1')')).isEnabled();
Förklaring:
- Hitta elementet på webbsidan enligt xpath och kontrollerar om elementet är aktiverat.
# 5) findElement (av, av) med sendKeys ()
findElement (By, by) med sendKeys () för att skriva in formulärfälten.
Formvalideringskontroller genom att ange olika användaringångar som ofta krävs vid automatiseringstestning. Vi använder findElement (By, by) för att hitta fälten och sendKeys () för att skriva något innehåll i ett redigerbart fält.
Kommandot nedan använder namnsökaren för att hitta formulärfältet och skriver 'Aaron' i det.
Syntax:
driver.findElement(By.name('name')).sendkeys('Aaron');
Förklaring:
- Leta efter önskat namnfält i formuläret.
- Ange värdet 'Aaron' i det.
# 6) findElement (av, av) med getText ()
findElement (By, by) med getText () för att lagra värdet på det riktade webbelementet.
GetText () är en metod som ger dig den inre texten i webbelementet. Hämta text är texten i HTML-taggarna.
Koden nedan hittar elementet med tagName 'select' och får texten inuti taggen och lagrar den i en rullgardinsmeny med variabel. Nu kan String dropDown användas för ytterligare åtgärder i programmet.
Syntax:
String dropDown = driver.findElement(By.tagName('dropdown1')).getText();
Förklaring:
- Leta efter det obligatoriska fältet i formuläret som har taggnamnet 'dropdown1'.
- Ta texten inuti dess HTML-tagg.
- Lagra texten i strängobjektet 'DropDown'.
# 7) Skicka ()
Skicka () för att skicka ett webbformulär.
Klicka () -metoden som vi diskuterade ovan kan användas för att klicka på alla länkar eller knappar. Skicka () är ett bättre alternativ att klicka på () om elementet som ska klickas är en skicka-knapp. Skicka-knappen är inne i HTML-form-taggen och typen av knapp är 'skicka' (inte 'knapp').
Skicka () gör livet enklare genom att automatiskt hitta knappen och metoden som kan läggas till i något annat fält som namn eller e-postadress. När det gäller klick måste vi använda findElement (By, by) -metoden och ange rätt lokaliserare.
I vissa scenarier där åtgärden görs genom andra element än en knapp, skickar () verk och klickar på () inte.
Syntax:
driver.findElement(By.xpath('//input(@name='comments')')).submit();
Förklaring:
- Hitta element i den angivna x-sökvägen med namnet 'kommentarer'.
- Skicka in formuläret.
# 8) findElements (av, av)
findElements (By, by) för att få en lista över webbelement.
Ibland kanske vi vill skriva ut eller göra en åtgärd på en lista med webbelement som länkar eller inmatningsfält på en webbsida. I ett sådant fall använder vi findElements (By, by).
Syntax:
List allChoices = dropDown.findElements(By.xpath('.//fruitoption'));
Förklaring:
- En lista över alla webbelement med angiven xpath lagras i webelementlistan allChoices.
# 9) findElements (av, av) med storlek ()
findElements (By, by) med storlek () för att verifiera om ett element finns.
findElements (By, by) kan användas för att verifiera om ett element faktiskt finns på webbsidan.
Kommandot nedan används om vi vill verifiera att ett element med en viss lokaliserare finns på en webbsida. Om storlek ()! = 0 är elementet närvarande.
Syntax:
Boolean checkIfElementPresent= driver.findElements(By.xpath('//input(@id='checkbox2')')).size()!= 0;
Förklaring:
- Sökelementet anges i xpath med id 'checkbox2'.
- Enligt storleken på elementlistan kommer den booleska checkIfElementPresent att ställas in på SANT eller FALSK.
# 10) pageLoadTimeout (tid, enhet)
pageLoadTimeout (tid, enhet) för att ställa in tiden för en sida att laddas.
Ibland på grund av serverproblem eller förseningar i nätverket kan det ta mer än vanligt att ladda in en sida. Detta kan orsaka ett fel i programmet. För att undvika detta ställer vi in en väntetid och pageLoadTimeout () är en sådan metod. Detta följer vanligtvis ett kommando get ().
Syntax:
driver.manage().timeouts().pageLoadTimeout(500, SECONDS);
Förklaring:
- Vänta i 500 sekunder tills en sida laddas.
# 11) implicitWait ()
implicitlyWait () för att ställa in en väntetid innan du söker och lokaliserar ett webbelement.
Vad händer om Webdriver försöker hitta ett element innan webbsidan laddas och elementet visas? NoSuchElementExeption kommer att kastas. För att undvika detta kan vi lägga till ett kommando för att implicit vänta en viss tid innan vi hittar elementet.
Syntax:
driver.manage().timeouts().implicitlyWait(1000, TimeUnit.SECONDS);
Förklaring:
- Vänta implicit i 1000 sekunder innan du kör nästa rad i koden.
# 12) till () och visibilityOfElementLocated ()
till () från WebdriverWait och visibilityOfElementLocated () från ExpectedConditions för att vänta uttryckligen tills ett element syns på webbsidan.
Att hantera fall där ett element tar för mycket tid för att vara synligt på programvarans webbsida med implicit väntan blir svårt. I det här fallet kan vi skriva en kommentar för att vänta tills elementet visas på webbsidan. Det här kommandot använder en kombination av till () -metoden från WebdriverWait Class och visibilityOfElementLocated () -metoden från ExpectedConditions-klassen.
Syntax:
WebDriverWait wait = new WebDriverWait(driver, 10); WebElement element = wait.until(ExpectedConditions.visibilityOfElementLocated (By.xpath('//input(@id=’name’)')));
Förklaring:
- Den första raden säger hur mycket tid att vänta, vilket är 10 sekunder.
- Det andra villkoret säger ett förväntat tillstånd att vänta på. Här är det ett element med id'name 'i nämnda xpath.
# 13) till () och alertIsPresent ()
till () från WebdriverWait och alertIsPresent () från ExpectedConditions att vänta uttryckligen tills en varning visas.
I vissa scenarier måste vi vänta på varningar för att fortsätta testet. I det här fallet använder vi ett kommando med metoden till () från klassen WebdriverWait och alertIsPresent () från klassen ExpectedConditions.
Se kommandot nedan:
WebDriverWait wait = new WebDriverWait(driver, 10); WebElement element = wait.until(ExpectedConditions.alertIsPresent() );
Förklaring:
- Den första raden säger hur mycket tid att vänta - det är 10 sekunder.
- Det andra villkoret säger ett förväntat tillstånd att vänta på. Här är det en varning som dyker upp.
# 14) getTitle ()
getTitle () för att hämta sidrubrik i Selenium webdriver.
Syntax:
String title = driver.getTitle(); System.out.println(title);
Detta används vanligtvis för att skriva ut titeln i utdataloggarna.
Förklaring:
- Få titeln på webbsidan och lagra den i strängobjektets titel.
- Skriv ut värdet som lagras i titeln till utgångsloggarna.
# 15) Välj
Välj klass för att välja och avmarkera värden från rullgardinsmenyn i Selenium WebDriver.
Vi har ofta rullgardinsrelaterade scenarier. Metoder från Select-klassen används för att hantera detta. Vi kan använda selectByVisibleText (), selectByValue () eller selectByIndex () enligt scenariot.
Syntax:
WebElement mySelectedElement = driver.findElement(By.id('select')); Select dropdown= new Select(mySelectedElement); dropdown.selectByVisibleText('Apple');
Förklaring:
- Hitta rullgardinsmeny med hjälp av dess id 'välj'.
- Välj den synliga texten 'Apple' i rullgardinsmenyn.
WebElement mySelectedElement = driver.findElement(By.id('select')); Select dropdown= new Select(mySelectedElement); Dropdown.selectByValue('Apple')
Förklaring:
- Hitta rullgardinsmenyn med dess id 'välj'.
- Välj texten med värdet 'Apple' i rullgardinsmenyn.
WebElement mySelectedElement = driver.findElement(By.id('select')); Select dropdown= new Select(mySelectedElement); listbox.selectByIndex(1);
Förklaring:
- Hitta rullgardinsmenyn med dess id 'välj'.
- Välj rullgardinsmenyn med indexvärdet '1' från rullgardinsmenyn (andra objekt).
I likhet med select kan vi avmarkera värden från rullgardinsmenyn med liknande kommandon.
Kontrollera kommandona:
WebElement mySelectedElement = driver.findElement(By.id('select')); Select dropdown= new Select(mySelectedElement); dropdown.deselectByVisibleText('Apple');
Förklaring:
- Hitta rullgardinsmenyn med dess id 'välj'.
- Avmarkera den synliga texten 'Apple' från rullgardinsmenyn.
WebElement mySelectedElement = driver.findElement(By.id('select')); Select dropdown= new Select(mySelectedElement); Dropdown.deselectByValue('Apple');
Förklaring:
- Hitta rullgardinsmenyn med dess id 'välj'.
- Avmarkera texten med värdet 'Apple' från rullgardinsmenyn.
WebElement mySelectedElement = driver.findElement(By.id('select')); Select dropdown= new Select(mySelectedElement); listbox.deselectByIndex(1);
Förklaring:
- Hitta rullgardinsmenyn med dess id 'välj'.
- Avmarkera rullgardinsmenyn med indexvärdet '1' från rullgardinsmenyn (andra objekt).
navigera () för att navigera mellan webbadresserna.
Vi ser ofta scenarier där vi kanske vill navigera från landnings-URL: en och sedan gå tillbaka eller framåt. I sådana fall kan vi istället för att använda get () använda navigate (). I Navigate kan vi använda back () och forward () metoder utan att ange URL: erna.
Syntax:
driver.navigate().to('https://www.softwaretestinghelp.com'); driver.navigate().back(); driver.navigate().forward();
Förklaring:
- Navigera till https://www.softwaretestinghelp.com
- Navigera tillbaka.
- Navigera framåt.
# 17) getScreenshotAs ()
getScreenshotAs () för att fånga hela sidans skärmdump i Selenium WebDriver.
Den här krävs ofta för att spara dina arbetsuppgifter eller ibland för att manuellt kontrollera utdata. Kommandot nedan används för att ta en skärmdump och spara i en utdatafil.
Syntax:
File shot = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE); FileUtils.copyFile(shot, new File('D:\ shot1.jpg'));
Förklaring:
- Ta en skärmdump och spara filen i objektbilden.
- Spara filen i D-enheten som shot1.png.
# 18) moveToElement ()
moveToElement () från åtgärdsklassen för att simulera musen.
Det finns scenarier där vi behöver sväva över webbelement som över menyn för att se undermenyer, länkar för att se färgförändringar etc. I dessa fall använder vi åtgärdsklassen. Ta en titt på syntaxen nedan för Action-klassen.
Syntax:
Actions actions = new Actions(driver); WebElement mouseHover = driver.findElement(By.xpath('//div(@id='mainmenu1')/div')); actions.moveToElement(mouseHover); actions.perform();
Förklaring
- Hitta och lokalisera webbelementet med div id 'huvudmeny1'.
- Flytta muspekaren till elementet.
# 19) dragAndDrop ()
draAndDrop () från åtgärdsklassen för att dra ett element och släppa det på ett annat element.
I vissa scenarier kanske vi vill dra element. Till exempel, dra en bild till scenen. I det här fallet kan vi använda åtgärdsklassen.
I dragAndDrop-metoden passerar vi de två parametrarna, Source locator - det element vi vill dra och Destination locator - det element som vi vill släppa till.
Syntax:
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();
Förklaring:
- Hitta och lokalisera källans webbelement.
- Hitta och leta upp destinationswebben.
- Dra och släpp källelementet på destinationselementet.
# 20) switchTo () och acceptera (), avvisa () och sendKeys ()
switchTo () och acceptera (), avvisa () och sendKeys () -metoder från Alert-klass för att växla till popup-varningar och hantera dem.
För att växla till varningar, popup-fönster och hantera dem använder vi en kombination av byta till() och acceptera (), avfärda () metoder från varningsklassen.
Syntax:
Alert alert = driver.switchTo().alert(); alert.sendKeys('This Is Softwaretestinghelp'); alert.accept()
Förklaring:
- Byt till varningsfönstret.
- Skriv “This Is Softwaretestinghelp” i varningen.
- Acceptera varningen och stäng den.
alert.dismiss () kan användas för att avvisa varningen.
# 21) getWindowHandle () och getWindowHandles ()
getWindowHandle () och getWindowHandles () för att hantera flera Windows i Selenium WebDriver.
Java grundläggande intervju frågor och svar
Det finns många fall där webbapplikationer har många ramar eller fönster.
Det är oftast annonser eller popup-fönster. Vi kan hantera flera fönster med Windows Handlers. Webdriver lagrar ett unikt fönster-ID för varje fönster. Vi använder detta ID för att hantera dem.
Syntax:
String handle= driver.getWindowHandle(); Set handle= driver.getWindowHandles();
Ovanstående kommandon används för att få fönster-id för det aktuella fönstret respektive för alla fönster. Se loop nedan för att se hur vi kan gå till varje fönster för loop.
for (String handle : driver.getWindowHandles()){ driver.switchTo().window(handle); }
Förklaring:
- För varje fönsterhanterings-id från driver.getWindowHandles (), byt till det fönster-id.
# 22) getConnection ()
getConnection () från DriverManager för att starta databasanslutning.
För att starta en databasanslutning använder vi getConnection från klassen DriverManager.
Syntax:
DriverManager.getConnection(URL, 'username', 'password' )
Förklaring:
- Anslut till databasen via URL och referenser.
# 23) DANNA
POI att läsa från Excel-filerna.
Vid datadriven testning sparar vi ofta ingångar i Excel-fil och läser den. För att göra detta i WebDriver importerar vi POI-paket och använder sedan kommandot nedan.
Syntax:
Workbook workbook = WorkbookFactory.create(new FileInputStream(file)); Sheet sheet = workbook.getSheetAt(0);
Förklaring:
- Skapa en läsarfil.
- Läs filen.
# 24) assertEquals (), assertNotEquals (), assertTrue () och assertFalse ()
Asserts med assertEquals (), assertNotEquals (), assertTrue () och assertFalse () för att jämföra resultaten.
Påståenden används för att jämföra förväntade och faktiska resultat. Godkänd eller inte godkänd av ett test bestäms vanligtvis utifrån resultatet av påståenden. Olika typer av påståenden används i automatisering.
Syntax:
Assert.assertEquals(message, “This text”); Assert.assertNotEquals(message, “This text”); Assert.assertTrue(result<0); Assert.assertFalse(result<0);
Förklaring:
- I det första kommandot passerar påståendet utan undantag när de förväntade och verkliga värdena är desamma. dvs om meddelandet är 'Denna text', så går påståendet över.
- I det andra kommandot misslyckas påståendet med undantag när de förväntade och faktiska värdena är desamma. d.v.s. om meddelandet är 'Den här texten' misslyckas påståendet.
- I det tredje kommandot, om villkoret passerar, går påståendet över. dvs. om resultatet<0, then the assertion passes.
- I det fjärde kommandot, om villkoret passerar, påståendet misslyckas. dvs. om resultatet<0, then the assertion fails.
# 25) stäng () och avsluta ()
stäng () och avsluta () för att stänga fönster och drivrutinsinstanser.
Dessa kommandon används i slutet av varje automatiseringsprogram.
Syntax:
driver.close() driver.quit()
Förklaring:
Det första kommandot stänger det aktuella fönstret.
Det andra kommandot avslutar denna drivrutinsinstans och stänger alla tillhörande fönster som öppnas.
Slutsats
I den här handledningen introducerade vi olika WebDrivers vanliga och alltför använda kommandon. Vi försökte förklara kommandona med lämpliga exempel och kodavsnitt.
Jag har försökt mitt bästa för att förklara de mest populära WebDriver-kommandona som vi använder rutinmässigt i vårt dagliga arbete. Med dessa kommandon kan du enkelt arbeta med Selenium.
Jag hoppas att det var intressant och kunnigt för dig.
Är du en automatiseringstestare som har provat något av ovanstående kommandon? Eller har vi missat några kommandon som du använder i listan ovan?
Nästa handledning # 18 : I den kommande handledningen skulle vi diskutera om Webbtabeller, ramar och dynamiska element som är en viktig del av alla webbprojekt. Vi kommer också att täcka undantagshantering det viktiga ämnet mer detaljerat i en av de kommande Selen-självstudierna.
Rekommenderad läsning
- Gurkselen-handledning: Gurka Java Selen WebDriver-integration
- Introduktion till Selen WebDriver - Selen Tutorial # 8
- Hur man kör Selen WebDriver i olika populära webbläsare
- Implementation of Our First WebDriver Script - Selenium WebDriver Tutorial # 10
- Vanliga frågor om selen
- Hur man hanterar varningar / popup-fönster i Selen WebDriver - Selen Tutorial # 16
- GeckoDriver Selen Tutorial: Hur man använder GeckoDriver i Selen-projekt
- Implicit och Explicit Wait i Selen WebDriver (Typer av Selen Waits)