how run selenium webdriver different popular browsers
Selenium stöder endast webbaserade applikationer och för att öppna dem behöver vi en webbläsare. Selen kan stödja olika webbläsare för testautomatisering.
I den här handledningen kommer vi att förklara hur man ställer in drivrutiner för de olika webbläsare som finns på marknaden.
I den nuvarande branschen finns det bara tre populära webbläsare som används ofta, dvs Google Chrome, Mozilla Firefox och Internet Explorer. Men Selenium stöder också andra webbläsare. För att utföra vårt skript på olika webbläsare behöver vi drivrutinen för den webbläsaren.
=> Läs alla Selen-handledning här
Vad du kommer att lära dig:
- Hur man ställer in drivrutiner för olika webbläsare
- Testning över webbläsare med Selenium WebDriver
- Slutsats
Hur man ställer in drivrutiner för olika webbläsare
Rekommenderat verktyg:
# 1) LambdaTest
Utför Selen-automatiseringstestning på ett skalbart, säkert och pålitligt molnbaserat Selen-nät online. Påskynda din Selen-testautomation samtidigt öka din testtäckning genom att testa på en online-infrastruktur för 2000+ stationära och mobila webbläsarmiljöer.
När vi först börjar med Selen-automatisering kommer vår allra första kodrad som:
WebDriver-drivrutin = ny FireFoxDriver ();
Det betyder att WebDriver är ett gränssnitt och vi definierar en referensvariabel (drivrutin) vars typ är ett gränssnitt.
Nu måste alla objekt vi tilldelar det vara en förekomst av en klass (FireFoxDriver) eller andra drivrutiner som implementerar det gränssnittet. I vårt fall är FireFoxDriver en klass och gränssnitt är WebDriver.
När all vår drivrutinsinstallation är klar utför vi alla Selen-kommandon som:
driver.getTitle ();
Se skärmdump:
ekvivalenspartitionering och gränsvärdesanalys
Vad som händer nu är att internt skapas en HTTP-begäran och skickas till den specifika webbläsardrivrutinen som vi definierade, webbläsardrivrutinen använder den HTTP-servern för att få HTTP-förfrågningarna och den bestämmer de steg som krävs för att implementera Selenium-kommandot.
Vår skapade logik körs i webbläsaren, sedan skickas körningsresultatet tillbaka till HTTP-servern och den skickar tillbaka statusen till automatiseringsskriptet.
Efter att ha ställt in föraren kan vi alltså komma åt alla de inbyggda metoderna i förarklass som:
- findElement ();
- stänga();
- getClass (); och många fler
Se skärmdump:
För att komma åt dessa metoder, skriv “ förare. ”I redigeraren och det visar alla metoder eller annars kan du trycka på“ ctrl + mellanslag ”och det kommer att visa dig metoderna.
Se skärmdump:
Ibland är inbyggda metoder inte tillgängliga när du trycker på 'ctrl + mellanslag'. Då måste du kontrollera dina JAVA_HOME sökvägsinställningar gjorda i miljövariabel och se till att de är korrekta.
Steg för att ställa in miljövariabel:
- Gå till Kontrollpanelen -> Klicka på System
- Gå till avancerade systeminställningar
- Klicka på knappen Miljövariabler
- Ställ in JAVA_HOME-sökvägen genom att klicka på den nya knappen.
Selen levereras med standard Mozilla Firefox-drivrutin som är buntad i Selenium WebDriver jar-fil. Därför krävs ingen installation för att ringa Firefox-drivrutinen. Om vi vill använda andra webbläsare måste vi ställa in dess systemegenskap.
Rekommenderad läsning => Cross Browser Testing med hjälp av Selen Grid
Testning över webbläsare med Selenium WebDriver
Nu ser vi installationen och körningen av drivrutiner i de nedan nämnda webbläsarna:
# 1) Mozilla Firefox
#två) Google Chrome
# 3) Internet Explorer
# 4) Opera
# 5) Ghost Driver eller PhantomJS
# 6) HTML-enhet
Drivrutinerna för de nämnda webbläsarna (utom PhantomJS och HTML Unit - se nedan för dessa) kan laddas ner härifrån: SelenHQ
Förutsatt att ni alla är medvetna om de olika webbläsarna som nämns ovan, kommer jag nu att förklara vad som är Spökförare och HTML-enhetsdrivrutin funktionalitet och hur du ställer in dem för ditt skript.
# 1) HTML-enhetsdrivrutin
Med den här drivrutinen kan vi göra Headless Browser Testing vilket innebär att det inte finns något GUI för det som du kan se när det körs internt. Och du kan inte utföra alla åtgärder som du gör i vanliga webbläsare.
I allmänhet rekommenderas inte HTML-enhetsdrivrutin för testning. Vi kan dock använda den eftersom den är snabbare, den mest lätta implementeringen av WebDriver används för att generera testdata, för att skicka innehållet på en webbsida till ett annat program eller skript.
För att använda HTML-enhetsdrivrutinen behöver du inte installera ytterligare API: er eller jar-filer. Du kan använda den när du har Selenium-server fristående jar-fil.
Se nedan kod:
//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 - Logga in eller registrera dig
PASSERADE : verifiera FacebookTitel
HTML-enhetsdrivrutin rekommenderas inte för komplexa applikationer och som använder jquery eller javascript eller HTML 5. Som standard stöder den inte javascript. Därför måste du ge villkor sant för att stödja det.
# 2) PhantomJS Driver
PhantomJS-webbläsaren används också för att utföra Headless Browser Testing. Den använder ett JavaScript API. Du kan använda den för Headless Testning av webbplatser och komma åt webbsidor. En fördel jämfört med HTML-enhetsdrivrutinen är att den kan fånga skärmdumpar. Det betyder att ditt test kommer att köras i bakgrunden och fånga skärmdumpar.
För att kunna använda webbläsaren PhantomJS med Selenium WebDriver måste vi använda och ladda ner GhostDriver. Det är en implementering av WebDriver wire-protokoll i enkel JS för PhantomJS-webbläsare. Nu i den senaste versionen av PhantomJS hade de integrerat GhostDriver med PhantomJS. Därför behöver vi inte installera det separat nu.
Hämta filen PhantomJs.exe härifrån: PhantomJs
För att köra PhantomJS kräver vi PhantomJS-drivrutin. Nedladdningslänk: PhantomJS-drivrutin
Och vi måste ställa in egendomsfilen PhantomJs.binary.path när vi kör skriptet.
Se nedan kod:
//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/
PASSAD: verifiera FacebookTitle
# 3) Mozilla Firefox-drivrutin
Så här kör du WebDriver i webbläsaren Firefox:
För att ringa Firefox Driver finns det inget behov av att installera eller konfigurera ytterligare jar-filer. Det är standarddrivrutinen som Selenium WebDriver stöder.
Se kod nedan för utförande:
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 : Sidans titel matchad
PASSERADE : Test_Gmail_Login
# 4) Google Chrome-drivrutin
Så här kör du WebDriver i webbläsaren Chrome:
För att ringa Google Chrome Driver, ladda ner först drivrutinen och ställ sedan in systemegenskap med hjälp av nedanstående kod:
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 : Välkommen till rediff.com
Rediff.com: Onlineshopping, Rediffmail, Senaste India News, Business, Bollywood, Sport, Lager, Live Cricket Score, Pengar, Filmrecensioner
PASSERADE : Test_Rediff_Alert
Läs också=> Selen-handledning - Leta upp element i Chrome- och IE-webbläsare
# 5) Internet Explorer-drivrutin
Så här kör du WebDriver i IE-webbläsaren:
För att ringa Internet Explorer Driver, ladda ner drivrutinen och ställ in en systemegenskap.
Se nedan kod:
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
PASSERADE : ie Driver
# 6) Operadrivrutin
För att ringa Opera Driver, ladda ner drivrutinen och ställ in systemegenskapen.
Se nedan kod:
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 : Skapa ett konto
PASSERADE : operaDriver
Läs också=> TestNG-anteckningar i selen
Slutsats
I denna handledning beskrev jag hur man installerar och använder drivrutiner för olika webbläsare.
Vi såg hur HTML-enhetsdrivrutinen och PhantomJS-drivrutinen skiljer sig från andra vanliga webbläsare. Anledningen till detta är att de inte används för vanlig surfning som Google Chrome och andra; istället arbetar de internt och kör våra kommandon snabbare eftersom det inte stöder GUI. Vi kan också utföra skripter på serversidan med PhantomJS.
Nu när vi har förstått hur man ställer in drivrutiner och får dem att fungera i olika webbläsare, måste vi vara tydliga varför vi gör det. Som ni alla känner till stöder Selenium endast webbaserade applikationer och för att öppna dem behöver vi en webbläsare.
Det finns olika drivrutiner (diskuterade ovan) för att öppna dessa webbläsare. En WebDriver är ett gränssnitt som innehåller alla abstrakta metoder som definieras i den. Därför kallar vi dessa metoder som diskuteras i denna handledning för att utföra våra uppgifter.
bästa återställningsprogrammet för Windows 10
Låt oss veta om du har några frågor / kommentarer om den här handledningen.
Rekommenderad läsning
- Gurka Selen Tutorial: Gurka Java Selen WebDriver Integration
- Introduktion till Selen WebDriver - Selen Tutorial # 8
- Implementering av vårt första WebDriver Script - Selenium WebDriver Tutorial # 10
- Vanliga frågor om selen
- Hur man hanterar varningar / popup-fönster i Selen WebDriver - Selen Tutorial # 16
- Implicit och Explicit Wait i Selen WebDriver (Typer av Selen Waits)
- Guide för att skapa omfattande rapporter i Selenium WebDriver
- GeckoDriver Selen Tutorial: Hur man använder GeckoDriver i Selen-projekt