how run selenium webdriver different popular browsers
Selenium podpira samo spletne programe in za njihovo odpiranje potrebujemo brskalnik. Selen lahko podpira različne brskalnike za avtomatizacijo preskusov.
V tej vadnici bomo razložili, kako nastaviti gonilnike za različne brskalnike, ki so na voljo na trgu.
V trenutni panogi obstajajo le trije priljubljeni brskalniki, ki se pogosto uporabljajo, npr. Google Chrome, Mozilla Firefox in Internet Explorer. Vendar Selenium podpira tudi druge brskalnike. Za izvajanje našega skripta v različnih brskalnikih potrebujemo gonilnik tega brskalnika.
=> Tu preberite vse vaje o selenu
Kaj se boste naučili:
- Kako nastaviti gonilnike za različne brskalnike
- Preskušanje med brskalniki z uporabo programa Selenium WebDriver
- Zaključek
Kako nastaviti gonilnike za različne brskalnike
Priporočeno orodje:
# 1) LambdaTest
Izvedite testiranje avtomatizacije selena na razširljivi, varni in zanesljivi mreži Selenium Grid, ki temelji na oblaku. Pospešite svojo avtomatizacijo preizkusov Selenium, hkrati pa povečajte svojo pokritost s testiranjem s testiranjem na spletni infrastrukturi 2000+ namiznih in mobilnih okolij brskalnikov.
Ko prvič začnemo z avtomatizacijo Selenium, je naša prva vrstica kode naslednja:
Gonilnik WebDriver = novi FireFoxDriver ();
To pomeni, da je WebDriver vmesnik in definiramo referenčno spremenljivko (gonilnik), katere tip je vmesnik.
Zdaj mora biti vsak objekt, ki mu ga dodelimo, primerek razreda (FireFoxDriver) ali kateri koli drug gonilnik, ki izvaja ta vmesnik. V našem primeru je FireFoxDriver razred, vmesnik pa WebDriver.
Ko končamo z vsemi nastavitvami gonilnikov, izvedemo kateri koli ukaz Selenium, kot so:
driver.getTitle ();
Glej posnetek zaslona:
kako inicializirati generično matriko v javi
Zdaj se zgodi, da se notranja zahteva HTTP ustvari in pošlje določenemu gonilniku brskalnika, ki smo ga definirali, gonilnik brskalnika pa ta strežnik HTTP uporabi za pridobivanje zahtev HTTP in določi korake, potrebne za izvajanje ukaza Selenium.
Naša ustvarjena logika se izvede v brskalniku, nato se rezultat izvršitve pošlje nazaj na strežnik HTTP in ta spet pošlje status v skript za avtomatizacijo.
Tako lahko po nastavitvi gonilnika dostopamo do vseh vgrajenih metod voznikovega razreda, kot so:
- findElement ();
- blizu ();
- getClass (); in še veliko več
Glej posnetek zaslona:
Za dostop do teh načinov vnesite » voznik. 'V urejevalniku in bo prikazal vse metode, sicer pa lahko pritisnete' ctrl + presledek 'in prikazal bo metode.
Glej posnetek zaslona:
Včasih vgrajene metode niso dostopne, če pritisnete 'ctrl + presledek'. Nato morate preveriti nastavitve poti JAVA_HOME v spremenljivki okolja in se prepričati, da so pravilne.
Koraki za nastavitev spremenljivke okolja:
- Pojdite na Nadzorna plošča -> Kliknite Sistem
- Pojdite na Advance System Settings
- Kliknite gumb Spremenljivke okolja
- S klikom na nov gumb nastavite pot JAVA_HOME.
Selenium ima privzeti gonilnik Mozilla Firefox, ki je priložen v datoteki jar Selenium WebDriver. Zato za klicanje gonilnika Firefox ni potrebna nobena namestitev. Če želimo uporabljati druge brskalnike, moramo nastaviti njegovo sistemsko lastnost.
Priporočeno branje => Preizkušanje med brskalniki z uporabo selenske mreže
Preskušanje med brskalniki z uporabo programa Selenium WebDriver
Zdaj bomo videli namestitev in izvajanje gonilnikov v spodaj omenjenih brskalnikih:
# 1) Mozilla Firefox
#two) Google Chrome
# 3) internet Explorer
# 4) Opera
# 5) Ghost Driver ali PhantomJS
# 6) Enota HTML
Gonilnike za omenjene brskalnike (razen PhantomJS in HTML Unit - preverite spodaj za te) lahko prenesete od tukaj: SelenHQ
Ob predpostavki, da se vsi zavedate različnih zgoraj omenjenih brskalnikov, bom zdaj razložil, kaj je Voznik duhov in Gonilnik enote HTML in kako jih nastaviti za svoj skript.
# 1) Gonilnik enote HTML
S tem gonilnikom lahko izvedemo testiranje brezglavega brskalnika, kar pomeni, da zanj ni grafičnega uporabniškega vmesnika, ki bi ga lahko videli, ko se izvaja notranje. In ne morete izvajati vseh operacij kot v običajnih brskalnikih.
Na splošno za testiranje gonilnik enote HTML ni priporočljiv. Lahko pa ga uporabimo, saj je hitrejši, najbolj lahka izvedba WebDriverja se uporablja za ustvarjanje testnih podatkov za posredovanje vsebine ene spletne strani drugemu programu ali skriptu.
Za uporabo enote HTML Driver ni treba namestiti dodatnih API-jev ali datotek jar. Uporabite ga lahko, ko imate samostojno datoteko jar strežnika Selenium.
Glej spodnjo kodo:
//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); } }
Izhod : Facebook - Prijavite se ali se prijavite
MENJENO : verifyFacebookTitle
Gonilnik enote HTML ni priporočljiv za zapletene aplikacije in ki uporablja jquery ali javascript ali HTML 5. Privzeto ne podpira javascripta. Zato morate podati resničen pogoj, da ga podprete.
# 2) Gonilnik PhantomJS
Brskalnik PhantomJS se uporablja tudi za testiranje brezglavega brskalnika. Uporablja JavaScript API. Uporabite ga lahko za brezglavo preskušanje spletnih strani in dostop do spletnih strani. Ena prednost pred HTML Unit Driver je ta, da lahko zajema posnetke zaslona. To pomeni, da bo test potekal v ozadju in zajemal posnetke zaslona.
Za uporabo brskalnika PhantomJS s programom Selenium WebDriver moramo uporabiti in prenesti GhostDriver. Gre za izvedbo žičnega protokola WebDriver v preprostem JS za brskalnik PhantomJS. Zdaj so v zadnji izdaji PhantomJS integrirali GhostDriver s PhantomJS. Tako nam ga zdaj ni treba namestiti ločeno.
Datoteko PhantomJs.exe prenesite od tukaj: PhantomJs
Za izvedbo PhantomJS potrebujemo gonilnik PhantomJS. Povezava za prenos: Gonilnik PhantomJS
In ko zaženemo skript, moramo nastaviti datoteko lastnosti PhantomJs.binary.path.
Glej spodnjo kodo:
//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()); } }
Izhod : https://www.facebook.com/
MENJENO: verifyFacebookTitle
# 3) Mozilla Firefox Driver
Kako zagnati WebDriver v brskalniku Firefox:
Za klicanje gonilnika Firefox ni treba namestiti ali konfigurirati dodatnih datotek jar. To je privzeti gonilnik, ki ga podpira Selenium WebDriver.
Za izvedbo glejte spodnjo kodo:
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'); } }
Izhod : Naslov strani se ujema
MENJENO : Test_Gmail_Login
# 4) Google Chrome Driver
Kako zagnati WebDriver v brskalniku Chrome:
Za klicanje gonilnika Google Chrome najprej prenesite gonilnik, nato pa nastavite sistemsko lastnost s spodnjo kodo:
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()); } }
Izhod : Dobrodošli na rediff.com
Rediff.com: Spletno nakupovanje, Rediffmail, najnovejše indijske novice, posel, Bollywood, šport, delnice, rezultat kriketa v živo, denar, kritike
MENJENO : Test_Rediff_Alert
Preberite tudi=> Vadnica za selen - Poiščite elemente v brskalnikih Chrome in IE
# 5) Gonilnik Internet Explorer
Kako zagnati WebDriver v brskalniku IE:
Za klic gonilnika Internet Explorer prenesite gonilnik in nastavite sistemsko lastnost.
Glej spodnjo kodo:
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); } }
Izhod : Google
MENJENO : ieDriver
# 6) Gonilnik Opera
Če želite poklicati Opera Driver, prenesite gonilnik in nastavite sistemsko lastnost.
Glej spodnjo kodo:
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()); } }
Izhod : Ustvari račun
MENJENO : operaDriver
Preberite tudi=> Pripombe TestNG v selenu
dodaj na konec polja java
Zaključek
V tej vadnici sem opisal, kako nastaviti in uporabljati gonilnike za različne brskalnike.
Videli smo, kako se HTML Unit Driver in PhantomJS Driver razlikujeta od drugih pogosto uporabljenih brskalnikov. Razlog za to je, da se ne uporabljajo za običajno brskanje, kot je Google Chrome in drugi; namesto tega delujejo interno in hitreje izvajajo naše ukaze, saj ne podpira GUI. S PhantomJS lahko izvajamo tudi skriptiranje na strani strežnika.
Zdaj, ko smo razumeli, kako nastaviti gonilnike in jih spraviti v različne brskalnike, nam mora biti jasno, zakaj to počnemo. Kot že veste, Selenium podpira samo spletne programe in za njihovo odpiranje potrebujemo brskalnik.
Za odpiranje teh brskalnikov so na voljo različni gonilniki (obravnavani zgoraj). WebDriver je vmesnik, ki vsebuje vse v njem definirane abstraktne metode. Zato za izvajanje naših nalog pokličemo te metode, ki so obravnavane v tej vadnici.
Sporočite nam, če imate kakršna koli vprašanja / komentarje o tej vadnici.
Priporočeno branje
- Vadnica za kumare selena: Integracija kumar Java Selenium WebDriver
- Uvod v Selenium WebDriver - Vadnica za selenij št. 8
- Implementacija našega prvega skripta WebDriver - Vadnica # 10 za selenium WebDriver
- Pogosta vprašanja o selenu
- Kako ravnati z opozorili / pojavnimi okni v programu Selenium WebDriver - Vodič za selenij št. 16
- Implicitno in eksplicitno čakanje v programu Selenium WebDriver (vrste selenijskih čakal)
- Priročnik za ustvarjanje obsežnih poročil v programu Selenium WebDriver
- Vadnica za GeckoDriver Selenium: Kako uporabljati GeckoDriver v projektih Selenium