how run selenium webdriver different popular browsers
Selenium støtter bare nettbaserte applikasjoner, og for å åpne dem trenger vi en nettleser. Selen kan støtte forskjellige nettlesere for testautomatisering.
I denne veiledningen vil vi forklare hvordan du setter opp drivere for de forskjellige nettleserne som er tilgjengelige i markedet.
I dagens bransje er det bare tre populære nettlesere som er mye brukt, dvs. Google Chrome, Mozilla Firefox og Internet Explorer. Selenium støtter imidlertid også andre nettlesere. For å utføre skriptet vårt på forskjellige nettlesere, trenger vi driveren til nettleseren.
=> Les alle Selen-opplæringene her
Hva du vil lære:
- Hvordan sette opp drivere for forskjellige nettlesere
- Testing på tvers av nettlesere ved bruk av Selenium WebDriver
- Konklusjon
Hvordan sette opp drivere for forskjellige nettlesere
Anbefalt verktøy:
#1) LambdaTest
Utfør Selenium-automatiseringstesting på et skalerbart, sikkert og pålitelig skybasert Selenium Grid online. Akselerere Selenium-testautomatiseringen din samtidig øke testdekningen ved å teste på en online infrastruktur for 2000+ stasjonære og mobile nettlesermiljøer.
Når vi først starter med Selen-automatisering, kommer vår aller første kodelinje som:
WebDriver-driver = ny FireFoxDriver ();
Det betyr at WebDriver er et grensesnitt, og vi definerer en referansevariabel (driver) hvis type er et grensesnitt.
Nå må ethvert objekt vi tildeler det være en forekomst av en klasse (FireFoxDriver) eller andre drivere som implementerer dette grensesnittet. I vårt tilfelle er FireFoxDriver en klasse og grensesnitt er WebDriver.
Når alt driveroppsett er utført, utfører vi enhver Selen-kommando, for eksempel:
driver.getTitle ();
Se skjermbilde:
hvordan du skriver ut en matrise i omvendt rekkefølge java
Det som skjer nå er at internt opprettes en HTTP-forespørsel og sendes til den spesifikke nettleserdriveren som vi definerte, nettleserdriveren bruker den HTTP-serveren for å få HTTP-forespørslene, og den bestemmer trinnene som trengs for å implementere Selenium-kommandoen.
Den opprettede logikken vår blir utført i nettleseren, deretter blir kjøringsresultatet sendt tilbake til HTTP-serveren, og den sender statusen tilbake til automatiseringsskriptet.
Dermed, etter å ha satt driveren, kan vi få tilgang til alle de innebygde metodene i førerklassen som:
- findElement ();
- Lukk();
- getClass (); og mange flere
Se skjermbilde:
For å få tilgang til disse metodene, skriv “ sjåfør. ”I redaktøren, og det vil vise alle metoder, ellers kan du trykke“ ctrl + mellomrom ”og det vil vise deg metodene.
Se skjermbilde:
Noen ganger er ikke innebygde metoder tilgjengelige når du trykker “ctrl + mellomrom”. Deretter må du sjekke JAVA_HOME-stiinnstillingene som er gjort i Miljøvariabel og sørge for at de er riktige.
Trinn for å sette opp miljøvariabel:
- Gå til Kontrollpanel -> Klikk System
- Gå til Advance System Settings
- Klikk på Miljøvariabler-knappen
- Sett JAVA_HOME-bane ved å klikke på den nye knappen.
Selen kommer med standard Mozilla Firefox-driver som er samlet i Selenium WebDriver jar-fil. Derfor er det ikke nødvendig å konfigurere Firefox-driveren. Hvis vi vil bruke andre nettlesere, må vi konfigurere systemegenskapen.
Anbefalt lesing => Cross Browser Testing ved hjelp av Selen Grid
Testing på tvers av nettlesere ved bruk av Selenium WebDriver
Nå vil vi se oppsett og kjøring av drivere i de nevnte nettleserne:
#1) Mozilla Firefox
#to) Google Chrome
# 3) Internet Explorer
# 4) Opera
# 5) Ghost Driver eller PhantomJS
# 6) HTML-enhet
Driverne for de nevnte nettleserne (unntatt PhantomJS og HTML Unit - sjekk nedenfor for disse) kan lastes ned herfra: SelenHQ
Forutsatt at dere alle er klar over de forskjellige nettleserne som er nevnt ovenfor, vil jeg nå forklare hva som er Spøkelsesdriver og HTML-enhetsdriver funksjonalitet og hvordan du konfigurerer dem for skriptet ditt.
# 1) HTML-enhetsdriver
Ved hjelp av denne driveren kan vi gjøre hodeløs nettlesertesting, noe som betyr at det ikke er noe GUI for det som du kan se når det kjører internt. Og du kan ikke utføre alle operasjoner som du gjør i vanlige nettlesere.
Generelt sett anbefales ikke HTML-enhetsdriver for testing. Imidlertid kan vi bruke den ettersom den er raskere. Den mest lette implementeringen av WebDriver brukes til å generere testdata, for å overføre innholdet på en webside til et annet program eller skript.
For bruk av HTML-enhetsdriver er det ikke nødvendig å installere ytterligere API-er eller jar-filer. Du kan bruke den når du har Selenium-serveren frittstående jar-fil.
Se koden nedenfor:
//Create a Java Project, under it create a package, and under package create a class packageheadless_browser_testing; import org.openqa.Selenium.WebDriver; importorg.openqa.Selenium.htmlunit.HtmlUnitDriver; import org.testng.Assert; import org.testng.annotations.Test; publicclassvefifyTestTitle { //You can run your script with TestNG or JUnit or using Java Application // I am using TestNG and using TestNG annotations @Test publicvoidverifyFacebookTitle() { //Call HtmlUnit Driver WebDriver driver = newHtmlUnitDriver(true); //It will get the Facebook URL and run the script in background, means you //will not see the Facebook page driver.get('http://www.facebook.com'); //It will fetch the FB title and store in String String facebook_Title= driver.getTitle(); //Assert condition will check the expected and actual title, if it matches //our test passes Assert.assertTrue(facebook_Title.contains('Facebook')); System.out.println(facebook_Title); } }
Produksjon : Facebook - Logg inn eller registrer deg
GÅTT : verifisereFacebookTitle
HTML-enhetsdriver anbefales ikke for komplekse applikasjoner og som bruker jquery eller javascript eller HTML 5. Som standard støtter den ikke javascript. Derfor må du gi sanne forhold for å støtte det.
# 2) PhantomJS Driver
PhantomJS-nettleser brukes også til å utføre hodeløs nettlesertesting. Den bruker et JavaScript API. Du kan bruke den til test av hodeløse nettsteder og få tilgang til nettsider. En fordel over HTML-enhetsdriver er at den kan ta skjermbilder. Det betyr at testen vil kjøre i bakgrunnen og fange skjermbildene.
For å kunne bruke PhantomJS-nettleseren med Selenium WebDriver, må vi bruke og laste ned GhostDriver. Det er en implementering av WebDriver wire-protokoll i enkel JS for PhantomJS-nettleser. Nå i den siste utgivelsen av PhantomJS hadde de integrert GhostDriver med PhantomJS. Dermed trenger vi ikke installere det separat nå.
Last ned filen PhantomJs.exe herfra: PhantomJs
For å kjøre PhantomJS, trenger vi PhantomJS-driver. Last ned lenke: PhantomJS-driver
Og vi må angi PhantomJs.binary.path-eiendomsfilen når vi kjører skriptet.
Se koden nedenfor:
//Create a Java Project, then under it create a package, under package create a class packageheadless_browser_testing; import java.io.File; import org.openqa.Selenium.WebDriver; import org.openqa.Selenium.phantomjs.PhantomJSDriver; import org.testng.annotations.Test; publicclass phantom_Js_Driver { //You can run your script with TestNG or JUnit or using Java Application // I am using TestNG and using TestNG annotations @Test publicvoidverifyFacebookTitle() { //Set the path to access the phantomjs.exe file File src = newFile('E:\exe\phantomjs-2.1.1-windows\bin\phantomjs.exe'); //You need to specify the property here and give path of driver System.setProperty('phantomjs.binary.path', src.getAbsolutePath()); //Call your PhantomJs Driver WebDriver driver = newPhantomJSDriver(); //It will get the Facebook URL and run the script in background, means you //will not see the Facebook page driver.get('http://www.facebook.com'); //Print the currentURL of the page System.out.println(driver.getCurrentUrl()); } }
Produksjon : https://www.facebook.com/
PASSERT: verifisereFacebookTitle
# 3) Mozilla Firefox Driver
Slik kjører du WebDriver i Firefox-nettleseren:
For å ringe Firefox Driver er det ikke nødvendig å installere eller konfigurere flere jar-filer. Det er standarddriveren som Selenium WebDriver støtter.
Se koden nedenfor for utførelse:
package Different_Drivers; import org.openqa.Selenium.WebDriver; import org.openqa.Selenium.firefox.FirefoxDriver; import org.testng.annotations.Test; import org.testng.Assert; public class FF_Driver { @Test public void Test_Gmail_Login() { WebDriver driver = new FirefoxDriver(); driver.get(“http://www.gmail.com”); driver.findElement(By.id('Email')).sendKeys('Enter user name'); driver.findElement(By.id('next')).click(); Thread.sleep(2000); driver.findElement(By.id('Passwd')).sendKeys('Enter Password'); driver.findElement(By.id('signIn')).click(); Thread.sleep(2000); String title_Of_Page = driver.getTitle(); Assert.assertEquals(driver.getTitle(), title_Of_Page); System.out.println('Page title matched'); } }
Produksjon : Sidetittelen matchet
GÅTT : Test_Gmail_Login
# 4) Google Chrome-driver
Slik kjører du WebDriver i Chrome-nettleseren:
For å ringe til Google Chrome Driver, må du først laste ned driveren og deretter angi systemegenskap ved hjelp av koden nedenfor:
package Different_Drivers; import org.openqa.Selenium.WebDriver; import org.openqa.Selenium.chrome.ChromeDriver; import org.testng.annotations.Test; importjava.util.Iterator; import java.util.Set; public class googleChrome_Driver { @Test public void Test_Rediff_Alert()throws InterruptedException{ //set system property, so that we can access chrome driver System.setProperty('webdriver.chrome.driver', 'E:\chromedriver.exe'); // It will open the Chrome browser and execute your logic WebDriverdriver = new ChromeDriver(); //Open rediff page in chrome browser driver.get(“http://www.rediffmail.com”); //wait for page to load Thread.sleep(5000); // It will get and store the main window page handle or id String mainpage = driver.getWindowHandle(); String subwinhandleString = null; //set a loop which will store all window pop up handles Set handle = driver.getWindowHandles(); Iterator iterator = handle.iterator(); while(iterator.hasNext ()) { subwinhandleString = iterator.next( ); } driver.switchTo().window(subwinhandleString); System.out.println(driver.getTitle()); Thread.sleep(2000); driver.close(); //Again switch back to main window driver.switchTo().window(mainpage); System.out.println(driver.getTitle()); } }
Produksjon : Velkommen til rediff.com
Rediff.com: Online shopping, Rediffmail, Siste India News, Business, Bollywood, Sport, Aksjer, Live Cricket Score, Penger, Filmanmeldelser
GÅTT : Test_Rediff_Alert
Les også=> Selen-opplæring - Finn elementer i Chrome- og IE-nettlesere
# 5) Internet Explorer-driver
Slik kjører du WebDriver i IE-nettleseren:
For å ringe Internet Explorer Driver, last ned driveren og angi en systemegenskap.
Se koden nedenfor:
package Different_Drivers; import org.openqa.selenium.WebDriver; import org.openqa.selenium.ie.InternetExplorerDriver; import org.openqa.selenium.remote.DesiredCapabilities; import org.testng.annotations.Test; public class internetExplorer_Driver { @Test public void ieDriver() throws InterruptedException { //set system property, so that we can access IE driver System.setProperty('webdriver.ie.driver','E\IEDriverServer.exe'); //set desiredcapabilites for calling ie driver DesiredCapabilities capabilities = DesiredCapabilities.internetExplorer(); capabilities.setCapability (InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS,true); WebDriver driver = new InternetExplorerDriver(capabilities); driver.get('https://www.google.com'); Thread.sleep(5000); String title_Of_Page = driver.getTitle(); System.out.println(title_Of_Page); } }
Produksjon : Google
GÅTT : ie Driver
# 6) Opera Driver
For å ringe til Opera Driver, last ned driveren og angi systemegenskapen.
Se koden nedenfor:
package Different_Drivers; import org.openqa.Selenium.WebDriver; importorg.openqa.Selenium.opera.OperaDriver; import org.testng.annotations.Test; import org.testng.Assert; public class operaDriver { @Test public void createAccount(){ //set system property, so that we can access opera driver System.setProperty('webdriver.opera.driver', 'E:\operadriver.exe'); // it will open the opera browser WebDriver driver = newOperaDriver(); driver.get('https://www.google.com/intl/en/mail/help/about.html'); // Here driver will try to find out create an account link on the application WebElement createAccount = driver.findElement(By.xpath('.//*(@id='gmail-create-account')')); Assert.assertTrue(createAccount.isDisplayed()); //Create Account will be clicked only if the above condition is true createAccount.click(); System.out.println(createAccount.getText()); } }
Produksjon : Opprett en konto
GÅTT : operaDriver
hvem er ansvarlig for forretningsverdien som leveres av et scrumteam?
Les også=> TestNG-merknader i selen
Konklusjon
I denne opplæringen dekket jeg hvordan du konfigurerer og bruker drivere for forskjellige nettlesere.
Vi så hvordan HTML Unit Driver og PhantomJS Driver er forskjellige fra andre vanlige nettlesere. Årsaken bak dette er at de ikke brukes til vanlig surfing som Google Chrome og andre; i stedet jobber de internt og utfører kommandoene våre raskere, da det ikke støtter GUI. Vi kan også utføre skripter på serversiden med PhantomJS.
Nå som vi har forstått hvordan vi installerer drivere og får dem til å jobbe i forskjellige nettlesere, må vi være tydelige på hvorfor vi gjør dette. Som dere alle vet, støtter Selenium bare nettbaserte applikasjoner, og for å åpne dem trenger vi en nettleser.
Det er forskjellige drivere (diskutert ovenfor) tilgjengelig for å åpne disse nettleserne. En WebDriver er et grensesnitt som inneholder alle de abstrakte metodene som er definert i den. Derfor kaller vi disse metodene som er diskutert i denne opplæringen for å utføre oppgavene våre.
Gi oss beskjed hvis du har spørsmål / kommentarer om denne opplæringen.
Anbefalt lesing
- Agurk Selen Tutorial: Agurk Java Selen WebDriver Integration
- Introduksjon til Selen WebDriver - Selenium Tutorial # 8
- 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
- Implisitt og eksplisitt ventetid i Selen WebDriver (Typer Selen Waits)
- Veiledning for å generere omfattende rapporter i Selenium WebDriver
- GeckoDriver Selenium-opplæring: Hvordan bruke GeckoDriver i Selen-prosjekter