how run selenium webdriver different popular browsers
Selenium només admet aplicacions basades en web i per obrir-les necessitem un navegador. Selenium pot admetre diversos navegadors per a l'automatització de proves.
En aquest tutorial, explicarem com configurar controladors per als diferents navegadors disponibles al mercat.
A la indústria actual, només hi ha tres navegadors populars molt utilitzats, és a dir, Google Chrome, Mozilla Firefox i Internet Explorer. Tot i això, Selenium també admet altres navegadors. Per executar el nostre script en diferents navegadors, necessitem el controlador d’aquest navegador.
=> Llegiu tots els tutorials de Selenium aquí
Què aprendreu:
- Com configurar els controladors per als diferents navegadors
- Prova de diversos navegadors mitjançant Selenium WebDriver
- Conclusió
Com configurar els controladors per als diferents navegadors
Eina recomanada:
# 1) LambdaTest
Realitzeu proves d'automatització de Selenium en una xarxa de Selenium Grid basada en núvol escalable, segura i fiable en línia. Accelereu l’automatització de les proves de Selenium alhora, augmenteu la cobertura de les proves provant en una infraestructura en línia de més de 2000 entorns d’escriptori i navegador mòbil.
Quan comencem amb l’automatització de Selenium, la nostra primera línia de codi és:
Controlador WebDriver = nou FireFoxDriver ();
Vol dir que WebDriver és una interfície i que estem definint una variable de referència (controlador) el tipus de la qual és una interfície.
Ara, qualsevol objecte que li assignem ha de ser una instància d'una classe (FireFoxDriver) o qualsevol altre controlador que implementi aquesta interfície. En el nostre cas, FireFoxDriver és una classe i la interfície és WebDriver.
Un cop acabada la configuració del controlador, executem qualsevol ordre de Selenium com:
driver.getTitle ();
Consulteu la captura de pantalla:
el millor programari de reparació de PC per a Windows 10
El que passa ara és que internament es crea una sol·licitud HTTP i s’envia al controlador de navegador específic que hem definit, el controlador de navegador utilitza aquest servidor HTTP per obtenir les sol·licituds HTTP i determina els passos necessaris per implementar l’ordre Selenium.
La nostra lògica creada s'executa al navegador, el resultat de l'execució es torna al servidor HTTP i torna a enviar l'estat a l'script d'automatització.
Així, després d’establir el controlador, podem accedir a tots els mètodes integrats de la classe del controlador, com ara:
- findElement ();
- Tanca();
- getClass (); i molts més
Consulteu la captura de pantalla:
Per accedir a aquests mètodes, escriviu “ conductor. ”A l’editor i mostrarà tots els mètodes o bé podeu prémer“ ctrl + espai ”i us mostrarà els mètodes.
Consulteu la captura de pantalla:
De vegades, els mètodes integrats no són accessibles quan premeu 'ctrl + espai'. A continuació, haureu de comprovar la configuració del camí JAVA_HOME realitzada a la variable d'entorn i assegurar-vos que siguin correctes.
Passos per configurar la variable d'entorn:
- Aneu al Tauler de control -> Feu clic a Sistema
- Aneu a Configuració avançada del sistema
- Feu clic al botó Variables d'entorn
- Establiu el camí JAVA_HOME fent clic al botó nou.
Selenium ve amb el controlador de Mozilla Firefox per defecte que s’inclou al fitxer jar Selenium WebDriver. Per això, per trucar al controlador de Firefox, no cal fer cap configuració. Si volem utilitzar altres navegadors, hem de configurar la propietat del sistema.
Lectura recomanada => Prova de navegadors creuats amb Selenium Grid
Prova de diversos navegadors mitjançant Selenium WebDriver
Ara veurem la configuració i l'execució dels controladors als navegadors esmentats a continuació:
# 1) Mozilla Firefox
# 2) Google Chrome
# 3) Internet Explorer
# 4) opera
# 5) Ghost Driver o PhantomJS
# 6) Unitat HTML
Els controladors dels navegadors esmentats (excepte PhantomJS i HTML Unit - comproveu-los a continuació) es poden descarregar des d’aquí: SeleniumHQ
Suposant que tots sou conscients dels diferents navegadors esmentats anteriorment, ara explicaré què és Conductor fantasma i Controlador de la unitat HTML funcionalitat i com configurar-los per al vostre script.
# 1) Controlador d'unitat HTML
Mitjançant aquest controlador podem fer proves de navegador sense cap, el que significa que no hi ha cap interfície gràfica que pugueu veure mentre s’executa internament. I no podeu realitzar totes les operacions com feu en els navegadors normals.
Generalment, per fer proves, no es recomana el controlador d’unitat HTML. Tot i això, el podem utilitzar ja que és més ràpid, la implementació més lleugera de WebDriver s’utilitza per generar dades de prova, per passar el contingut d’una pàgina web a un altre programa o script.
Per utilitzar el controlador d’unitat HTML no cal instal·lar cap API ni fitxer jar addicionals. Podeu utilitzar-lo un cop tingueu el fitxer jar autònom del servidor Selenium.
Consulteu el codi següent:
//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); } }
Sortida : Facebook - Inicieu la sessió o registreu-vos
SUPERAT : verifyFacebookTitle
El controlador d'unitat HTML no es recomana per a aplicacions complexes i que utilitzi jquery o javascript o HTML 5. Per defecte, no admet javascript. Per tant, heu de donar una condició veritable per recolzar-la.
hi ha vr per a Xbox One
# 2) Controlador PhantomJS
El navegador PhantomJS també s’utilitza per realitzar proves de navegador sense cap. Utilitza una API JavaScript. Podeu utilitzar-lo per provar llocs web sense cap i accedir a pàgines web. Un avantatge respecte al controlador d’unitat HTML és que pot capturar captures de pantalla. Vol dir que la prova s’executarà en segon pla i capturarà les captures de pantalla.
Per utilitzar el navegador PhantomJS amb Selenium WebDriver, hem d’utilitzar i descarregar GhostDriver. És una implementació del protocol de cable WebDriver en el navegador JS simple per al PhantomJS. Ara, en l’última versió de PhantomJS, havien integrat GhostDriver amb PhantomJS. Per tant, ara no l’hem d’instal·lar per separat.
Descarregueu el fitxer PhantomJs.exe des d’aquí: PhantomJs
Per executar el PhantomJS, necessitem el controlador PhantomJS. Enllaç de descàrrega: Controlador PhantomJS
I hem d’establir el fitxer de propietats PhantomJs.binary.path quan executem l’escriptura.
Consulteu el codi següent:
//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()); } }
Sortida : https://www.facebook.com/
SUPERAT: verifyFacebookTitle
# 3) Controlador de Mozilla Firefox
Com executar WebDriver al navegador Firefox:
Per trucar al controlador de Firefox no cal instal·lar ni configurar fitxers jar addicionals. És el controlador per defecte que admet Selenium WebDriver.
Consulteu el codi següent per a l'execució:
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'); } }
Sortida : El títol de la pàgina coincideix
SUPERAT : Test_Gmail_Login
# 4) Controlador de Google Chrome
Com s'executa WebDriver al navegador Chrome:
Per trucar al controlador de Google Chrome, primer descarregueu el controlador i, a continuació, configureu la propietat del sistema mitjançant el codi següent:
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()); } }
Sortida : Benvingut a rediff.com
Rediff.com: Compres en línia, Rediffmail, Últimes notícies de l'Índia, Negocis, Bollywood, Esports, Accions, Live Cricket Score, Diners, Ressenyes de pel·lícules
SUPERAT : Test_Rediff_Alert
Llegiu també=> Tutorial de seleni - Cerqueu elements als navegadors Chrome i IE
# 5) Controlador d'Internet Explorer
Com executar WebDriver al navegador IE:
Per trucar al controlador d'Internet Explorer, descarregueu-lo i configureu una propietat del sistema.
Consulteu el codi següent:
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); } }
Sortida : Google
SUPERAT : ieConductor
# 6) Opera Driver
Per trucar a Opera Driver, descarregueu el controlador i configureu la propietat del sistema.
Consulteu el codi següent:
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()); } }
Sortida : Crear un compte
SUPERAT : operaDriver
Llegiu també=> Anotacions TestNG al seleni
Conclusió
En aquest tutorial, he explicat com configurar i utilitzar els controladors per a diversos navegadors.
Vam veure com el controlador de la unitat HTML i el controlador PhantomJS són diferents dels altres navegadors d’ús habitual. El motiu d’aquest fet és que no s’utilitzen per a navegacions habituals com Google Chrome i altres; en canvi, funcionen internament i executen les nostres ordres més ràpidament, ja que no admet la GUI. També podem realitzar scripts del servidor amb PhantomJS.
Ara que hem entès com configurar els controladors i fer-los funcionar en diversos navegadors, hem de tenir clar per què ho fem. Com tots sabeu, Selenium només admet aplicacions basades en web i per obrir-les necessitem un navegador.
Hi ha diversos controladors (comentats més amunt) disponibles per obrir aquests navegadors. Un WebDriver és una interfície que conté tots els mètodes abstractes que s’hi defineixen. Per tant, anomenem aquests mètodes que es comenten en aquest tutorial per realitzar les nostres tasques.
Feu-nos saber si teniu cap pregunta o comentari sobre aquest tutorial.
Lectura recomanada
- Tutorial de Cogombre Selenium: Integració de Cogombre Java Selenium WebDriver
- Introducció a Selenium WebDriver - Tutorial Selenium núm. 8
- Implementació del nostre primer script WebDriver - Tutorial Selenium WebDriver # 10
- Preguntes més freqüents sobre el seleni
- Com gestionar les alertes / finestres emergents a Selenium WebDriver - Tutorial Selenium núm. 16
- Espera implícita i explícita a Selenium WebDriver (tipus d'espera de seleni)
- Guia per generar informes d’extensió a Selenium WebDriver
- Tutorial de GeckoDriver Selenium: Com utilitzar GeckoDriver en projectes de Selenium