how run selenium webdriver different popular browsers
Selenium supporta solo applicazioni basate sul web e per aprirle abbiamo bisogno di un browser. Selenium può supportare vari browser per l'automazione dei test.
In questo tutorial, spiegheremo come impostare i driver per i diversi browser disponibili sul mercato.
Nel settore attuale, ci sono solo tre browser popolari ampiamente utilizzati, ovvero Google Chrome, Mozilla Firefox e Internet Explorer. Tuttavia, Selenium supporta anche altri browser. Per eseguire il nostro script su diversi browser abbiamo bisogno del driver di quel browser.
=> Leggi tutti i tutorial sul selenio qui
Cosa imparerai:
- Come impostare i driver per i diversi browser
- Test su più browser utilizzando Selenium WebDriver
- Conclusione
Come impostare i driver per i diversi browser
Strumento consigliato:
# 1) LambdaTest
Esegui test di automazione del selenio su una griglia selenio online scalabile, sicura e affidabile basata su cloud. Accelera la tua automazione dei test Selenium e allo stesso tempo aumenta la copertura dei test testando su un'infrastruttura online di oltre 2000 ambienti desktop e browser mobili.
=> Visita il sito web LambdaTest
Quando iniziamo per la prima volta con l'automazione Selenium, la nostra prima riga di codice si presenta come:
Driver WebDriver = nuovo FireFoxDriver ();
Significa che WebDriver è un'interfaccia e stiamo definendo una variabile di riferimento (driver) il cui tipo è un'interfaccia.
Ora, qualsiasi oggetto che gli assegniamo deve essere un'istanza di una classe (FireFoxDriver) o qualsiasi altro driver che implementa quell'interfaccia. Nel nostro caso, FireFoxDriver è una classe e l'interfaccia è WebDriver.
Quando tutta la configurazione del nostro driver è terminata, eseguiamo qualsiasi comando Selenium come:
driver.getTitle ();
Fare riferimento allo screenshot:
domande e risposte dell'intervista all'ingegnere devops
Quello che succede ora è che internamente viene creata una richiesta HTTP e inviata al driver del browser specifico che abbiamo definito, il driver del browser utilizza quel server HTTP per ottenere le richieste HTTP e determina i passaggi necessari per implementare il comando Selenium.
La nostra logica creata viene eseguita sul browser, quindi il risultato dell'esecuzione viene rimandato al server HTTP e invia nuovamente lo stato allo script di automazione.
Quindi, dopo aver impostato il driver, possiamo accedere a tutti i metodi integrati della classe del driver come:
- findElement ();
- vicino();
- getClass (); e tanti altri
Fare riferimento allo screenshot:
Per accedere a questi metodi, digita ' conducente. 'Nell'editor e mostrerà tutti i metodi oppure puoi premere' ctrl + spazio 'e ti mostrerà i metodi.
Fare riferimento allo screenshot:
A volte i metodi incorporati non sono accessibili quando si preme 'ctrl + spazio'. Quindi è necessario controllare le impostazioni del percorso JAVA_HOME effettuate in Variabile d'ambiente e assicurarsi che siano corrette.
Passaggi per impostare la variabile d'ambiente:
- Vai al Pannello di controllo -> Fai clic su Sistema
- Vai a Impostazioni di sistema avanzate
- Fare clic sul pulsante Variabili d'ambiente
- Imposta il percorso JAVA_HOME facendo clic sul nuovo pulsante.
Selenium viene fornito con il driver Mozilla Firefox predefinito che è fornito in bundle nel file jar Selenium WebDriver. Ecco perché per chiamare il driver di Firefox, non è richiesta alcuna configurazione. Se vogliamo utilizzare altri browser, dobbiamo impostare la sua proprietà di sistema.
Lettura consigliata => Cross Browser Testing utilizzando Selenium Grid
Test su più browser utilizzando Selenium WebDriver
Ora vedremo la configurazione e l'esecuzione dei driver nei browser menzionati di seguito:
# 1) Mozilla Firefox
#Due) Google Chrome
# 3) Internet Explorer
# 4) musica lirica
# 5) Ghost Driver o PhantomJS
# 6) Unità HTML
I driver per i browser menzionati (eccetto PhantomJS e HTML Unit - controlla di seguito per questi) possono essere scaricati da qui: SeleniumHQ
Supponendo che tutti voi sappiate dei diversi browser sopra menzionati, ora spiegherò cosa è Driver fantasma e Driver dell'unità HTML funzionalità e come impostarli per il tuo script.
# 1) Driver unità HTML
Usando questo driver possiamo eseguire test del browser senza testa, il che significa che non esiste una GUI che puoi vedere mentre viene eseguito internamente. Inoltre, non è possibile eseguire tutte le operazioni come nei normali browser.
In genere, per il test, HTML Unit Driver non è consigliato. Tuttavia, possiamo usarlo poiché è un'implementazione più veloce e leggera di WebDriver per generare dati di test, per passare il contenuto di una pagina web ad un altro programma o script.
Per utilizzare HTML Unit Driver non è necessario installare API o file jar aggiuntivi. Puoi usarlo una volta che hai il file jar standalone del server Selenium.
Fare riferimento al codice seguente:
//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); } }
Produzione : Facebook - Accedi o registrati
PASSATO : verifyFacebookTitle
Il driver dell'unità HTML non è consigliato per applicazioni complesse e che utilizzano jquery o javascript o HTML 5. Per impostazione predefinita, non supporta javascript. Quindi, devi dare condizione vera per sostenerlo.
# 2) Driver PhantomJS
Il browser PhantomJS viene utilizzato anche per eseguire test del browser senza testa. Utilizza un'API JavaScript. Puoi usarlo per testare siti Web senza testa e accedere a pagine web. Un vantaggio rispetto a HTML Unit Driver è che può catturare screenshot. Significa che il tuo test verrà eseguito in background e catturerà gli screenshot.
Per poter utilizzare il browser PhantomJS con Selenium WebDriver, dobbiamo utilizzare e scaricare GhostDriver. È un'implementazione del protocollo cablato WebDriver in semplice JS per il browser PhantomJS. Ora nell'ultima versione di PhantomJS avevano integrato GhostDriver con PhantomJS. Pertanto, non dobbiamo installarlo separatamente ora.
Scarica il file PhantomJs.exe da qui: PhantomJs
Per eseguire PhantomJS, abbiamo bisogno del driver PhantomJS. Link per scaricare: Driver PhantomJS
E abbiamo bisogno di impostare il file delle proprietà PhantomJs.binary.path, quando eseguiamo lo script.
Fare riferimento al codice seguente:
//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()); } }
Produzione : https://www.facebook.com/
SUPERATO: verificaFacebookTitle
# 3) Driver Mozilla Firefox
Come eseguire WebDriver nel browser Firefox:
Per chiamare Firefox Driver non è necessario installare o configurare file jar aggiuntivi. È il driver predefinito supportato da Selenium WebDriver.
Fare riferimento al codice seguente per l'esecuzione:
app Android per spiare un altro telefono
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'); } }
Produzione : Titolo della pagina corrispondente
PASSATO : Test_Gmail_Login
# 4) Google Chrome Driver
Come eseguire WebDriver nel browser Chrome:
Per chiamare Google Chrome Driver, scarica prima il driver, quindi imposta la proprietà del sistema utilizzando il codice seguente:
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()); } }
Produzione : Benvenuto su rediff.com
Rediff.com: acquisti online, rediffmail, ultime notizie sull'India, affari, Bollywood, sport, azioni, punteggio di cricket dal vivo, denaro, recensioni di film
PASSATO : Test_Rediff_Alert
Leggi anche=> Tutorial sul selenio - Individua gli elementi nei browser Chrome e IE
# 5) Driver di Internet Explorer
Come eseguire WebDriver nel browser IE:
Per chiamare Internet Explorer Driver, scarica il driver e imposta una proprietà di sistema.
Fare riferimento al codice seguente:
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); } }
Produzione : Google
PASSATO : ieDriver
# 6) Opera Driver
Per chiamare Opera Driver, scarica il driver e imposta la proprietà di sistema.
Fare riferimento al codice seguente:
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()); } }
Produzione : Crea un account
PASSATO : operaDriver
Leggi anche=> Annotazioni TestNG in selenio
Conclusione
In questo tutorial, ho spiegato come configurare e utilizzare i driver per vari browser.
Abbiamo visto come HTML Unit Driver e PhantomJS Driver siano diversi dagli altri browser comunemente usati. Il motivo è che non vengono utilizzati per la navigazione comune come Google Chrome e altri; invece, funzionano internamente ed eseguono i nostri comandi più velocemente poiché non supporta la GUI. Possiamo anche eseguire scripting lato server con PhantomJS.
Ora che abbiamo capito come configurare i driver e farli funzionare su vari browser, dobbiamo essere chiari perché lo stiamo facendo. Come tutti saprete Selenium supporta solo applicazioni basate sul web e per aprirle abbiamo bisogno di un browser.
Sono disponibili vari driver (discussi sopra) per aprire questi browser. Un WebDriver è un'interfaccia che contiene tutti i metodi astratti in essa definiti. Pertanto, chiamiamo questi metodi discussi in questo tutorial per eseguire le nostre attività.
Facci sapere se hai domande / commenti su questo tutorial.
Lettura consigliata
- Esercitazione sul selenio di cetriolo: integrazione con WebDriver di selenio Java di cetriolo
- Introduzione a Selenium WebDriver - Selenium Tutorial # 8
- Implementazione del nostro primo script WebDriver - Selenium WebDriver Tutorial # 10
- Domande frequenti sul selenio
- Come gestire avvisi / popup in Selenium WebDriver - Selenium Tutorial # 16
- Attesa implicita ed esplicita in Selenium WebDriver (tipi di attese al selenio)
- Guida per generare report di estensione in Selenium WebDriver
- Tutorial GeckoDriver Selenium: come utilizzare GeckoDriver nei progetti Selenium