how run selenium webdriver different popular browsers
Selenium understøtter kun webbaserede applikationer, og for at åbne dem har vi brug for en browser. Selen kan understøtte forskellige browsere til testautomatisering.
I denne vejledning forklarer vi, hvordan du opretter drivere til de forskellige browsere, der er tilgængelige på markedet.
I den nuværende industri er der kun tre populære browsere, der er meget udbredt, dvs. Google Chrome, Mozilla Firefox og Internet Explorer. Selenium understøtter dog også andre browsere. For at udføre vores script på forskellige browsere har vi brug for driveren til den browser.
=> Læs alle Selen-vejledninger her
Hvad du lærer:
- Sådan oprettes drivere til de forskellige browsere
- Test af flere browsere ved hjælp af Selen WebDriver
- Konklusion
Sådan oprettes drivere til de forskellige browsere
Anbefalet værktøj:
# 1) LambdaTest
Udfør Selen-automatiseringstest på et skalerbart, sikkert og pålideligt skybaseret Selenium-net online. Fremskynd din Selenium-testautomatisering på samme tid, øg din testdækning ved at teste på en online infrastruktur i 2000+ desktop- og mobilbrowsermiljøer.
Når vi først starter med Selen-automatisering, kommer vores allerførste linje med kode som:
WebDriver-driver = ny FireFoxDriver ();
Det betyder, at WebDriver er en grænseflade, og vi definerer en referencevariabel (driver), hvis type er en grænseflade.
Nu skal ethvert objekt, vi tildeler det, være en forekomst af en klasse (FireFoxDriver) eller andre drivere, der implementerer denne grænseflade. I vores tilfælde er FireFoxDriver en klasse og interface er WebDriver.
Når al vores driveropsætning er færdig, udfører vi enhver Selen-kommando, såsom:
driver.getTitle ();
Se skærmbillede:
hvordan man kopierer en array java
Hvad der sker nu er, at internt oprettes en HTTP-anmodning og sendes til den specifikke browserdriver, som vi definerede, browserdriveren bruger den HTTP-server til at hente HTTP-anmodningerne, og den bestemmer de nødvendige trin til implementering af Selenium-kommandoen.
Vores oprettede logik udføres i browseren, så udførelsesresultatet sendes tilbage til HTTP-serveren, og det sender igen status tilbage til automatiseringsscriptet.
Efter indstilling af driveren kan vi således få adgang til alle de indbyggede metoder i førerklassen som:
- findElement ();
- tæt();
- getClass (); og mange flere
Se skærmbillede:
For at få adgang til disse metoder skal du skrive “ chauffør. ”I editoren, og det viser alle metoder, ellers kan du trykke på“ ctrl + mellemrum ”, og det vil vise dig metoderne.
Se skærmbillede:
Nogle gange er indbyggede metoder ikke tilgængelige, når du trykker på 'ctrl + mellemrum'. Derefter skal du kontrollere dine JAVA_HOME stiindstillinger foretaget i miljøvariabel og sikre, at de er korrekte.
Trin til opsætning af miljøvariabel:
- Gå til Kontrolpanel -> Klik på System
- Gå til avancerede systemindstillinger
- Klik på knappen Miljøvariabler
- Indstil stien JAVA_HOME ved at klikke på den nye knap.
Selen leveres med standard Mozilla Firefox-driver, der er samlet i Selenium WebDriver jar-fil. Derfor kræves ingen opsætning for at ringe til Firefox-driveren. Hvis vi vil bruge andre browsere, skal vi konfigurere systemets egenskab.
Anbefalet læsning => Cross Browser Testing ved hjælp af Selen Grid
Test af flere browsere ved hjælp af Selen WebDriver
Nu ser vi opsætningen og udførelsen af drivere i nedenstående browsere:
# 1) Mozilla Firefox
#to) Google Chrome
# 3) Internet Explorer
# 4) Opera
# 5) Ghost Driver eller PhantomJS
# 6) HTML-enhed
Drivere til de nævnte browsere (undtagen PhantomJS og HTML Unit - se nedenfor for disse) kan downloades herfra: SelenHQ
Forudsat at du alle er opmærksom på de forskellige browsere, der er nævnt ovenfor, vil jeg nu forklare, hvad der er Spøgelsesdriver og HTML-enhedsdriver funktionalitet og hvordan du konfigurerer dem til dit script.
# 1) HTML-enhedsdriver
Ved hjælp af denne driver kan vi udføre Headless Browser Testing, hvilket betyder, at der ikke er nogen GUI til den, som du kan se, da den kører internt. Og du kan ikke udføre alle handlinger, som du gør i normale browsere.
Generelt til test anbefales HTML-enhedsdriver ikke. Vi kan dog bruge det, da det er hurtigere, mest lette implementering af WebDriver bruges til at generere testdata til at overføre indholdet på en webside til et andet program eller script.
For at bruge HTML-enhedsdriver er det ikke nødvendigt at installere yderligere API'er eller jar-filer. Du kan bruge den, når du har Selenium-serveren standalone jar-fil.
Se nedenstående kode:
//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); } }
Produktion : Facebook - Log ind eller tilmeld dig
FORBYGGET : verificereFacebookTitle
HTML-enhedsdriver anbefales ikke til komplekse applikationer, og som bruger jquery eller javascript eller HTML 5. Som standard understøtter den ikke javascript. Derfor er du nødt til at give betingelse sand for at støtte det.
# 2) PhantomJS Driver
PhantomJS browser bruges også til at udføre Headless Browser Testing. Det bruger en JavaScript API. Du kan bruge den til Headless Website Testing og få adgang til websider. En fordel i forhold til HTML-enhedsdriver er, at den kan optage skærmbilleder. Det betyder, at din test kører i baggrunden og fanger skærmbillederne.
For at kunne bruge PhantomJS-browseren med Selenium WebDriver, er vi nødt til at bruge og downloade GhostDriver. Det er en implementering af WebDriver wire-protokol i simpel JS til PhantomJS-browser. Nu i den seneste udgivelse af PhantomJS havde de integreret GhostDriver med PhantomJS. Derfor behøver vi ikke installere det separat nu.
Download PhantomJs.exe-fil herfra: PhantomJs
For at udføre PhantomJS kræver vi PhantomJS-driver. Download link: PhantomJS driver
bedste gratis pc-renser til Windows 10
Og vi er nødt til at indstille PhantomJs.binary.path-egenskabsfilen, når vi udfører scriptet.
Se nedenstående kode:
//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()); } }
Produktion : https://www.facebook.com/
PASSED: verificereFacebookTitle
# 3) Mozilla Firefox Driver
Sådan køres WebDriver i Firefox-browseren:
For at ringe til Firefox Driver er der ikke behov for at installere eller konfigurere yderligere jar-filer. Det er standarddriveren, som Selenium WebDriver understøtter.
Se nedenstående kode for udfø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'); } }
Produktion : Sidetitel matchet
FORBYGGET : Test_Gmail_Login
# 4) Google Chrome Driver
Sådan køres WebDriver i Chrome-browseren:
For at ringe til Google Chrome Driver skal du først downloade driveren og derefter indstille systemegenskab ved hjælp af nedenstående kode:
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()); } }
Produktion : Velkommen til rediff.com
Rediff.com: Onlineshopping, Rediffmail, Seneste Indien Nyheder, Forretning, Bollywood, Sport, Lager, Live Cricket Score, Penge, Filmanmeldelser
FORBYGGET : Test_Rediff_Alert
Læs også=> Selen tutorial - Find elementer i Chrome- og IE-browsere
# 5) Internet Explorer-driver
Sådan køres WebDriver i IE-browseren:
For at ringe til Internet Explorer Driver skal du downloade driveren og indstille en systemegenskab.
Se nedenstående kode:
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); } }
Produktion : Google
FORBYGGET : ie Driver
# 6) Opera Driver
For at ringe til Opera Driver skal du downloade driveren og indstille systemegenskab.
Se nedenstående kode:
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()); } }
Produktion : Opret en konto
FORBYGGET : operaDriver
Læs også=> TestNG-bemærkninger i selen
Konklusion
I denne vejledning dækkede jeg, hvordan du opsætter og bruger drivere til forskellige browsere.
Vi så, hvordan HTML-enhedsdriver og PhantomJS-driver adskiller sig fra andre almindeligt anvendte browsere. Årsagen bag dette er, at de ikke bruges til almindelig browsing som Google Chrome og andre; i stedet arbejder de internt og udfører vores kommandoer hurtigere, da det ikke understøtter GUI. Vi kan også udføre scripting på serversiden med PhantomJS.
Nu hvor vi har forstået, hvordan du konfigurerer drivere og får dem til at arbejde på forskellige browsere, skal vi være klare, hvorfor vi gør dette. Som du alle ved, understøtter Selenium kun webbaserede applikationer, og for at åbne dem har vi brug for en browser.
Der er forskellige drivere (diskuteret ovenfor) tilgængelige for at åbne disse browsere. En WebDriver er en grænseflade, der indeholder alle de abstrakte metoder, der er defineret i den. Derfor kalder vi disse metoder, der diskuteres i denne vejledning for at udføre vores opgaver.
Fortæl os, hvis du har spørgsmål / kommentarer til denne tutorial.
Anbefalet læsning
- Agurk Selen Tutorial: Agurk Java Selen WebDriver Integration
- Introduktion til Selen WebDriver - Selen Tutorial # 8
- 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 i Selen WebDriver - Selen Tutorial # 16
- Implicit og eksplicit Vent i Selen WebDriver (Typer af Selen Waits)
- Vejledning til generering af omfattende rapporter i Selen WebDriver
- GeckoDriver Selen Tutorial: Sådan bruges GeckoDriver i Selenium-projekter