how run selenium webdriver different popular browsers
Selenium acceptă numai aplicații bazate pe web și pentru a le deschide avem nevoie de un browser. Selenium poate suporta diverse browsere pentru automatizarea testelor.
În acest tutorial, vom explica cum să configurați driverele pentru diferitele browsere disponibile pe piață.
În industria actuală, există doar trei browsere populare care sunt utilizate pe scară largă, adică Google Chrome, Mozilla Firefox și Internet Explorer. Cu toate acestea, Selenium acceptă și alte browsere. Pentru a executa scriptul nostru pe diferite browsere, avem nevoie de driverul acelui browser.
=> Citiți aici toate tutorialele Selenium
Ce veți învăța:
- Cum să configurați drivere pentru diferite browsere
- Testare cross-browser folosind Selenium WebDriver
- Concluzie
Cum să configurați drivere pentru diferite browsere
Instrument recomandat:
# 1) LambdaTest
Efectuați teste de automatizare Selenium pe o rețea online Selenium Gral, scalabilă, sigură și fiabilă. Accelerați automatizarea testului Selenium în același timp, creșteți acoperirea testului testând pe o infrastructură online de peste 2000 de medii de desktop și browser mobile.
Când începem cu automatizarea Selenium, prima noastră linie de cod vine ca:
Driver WebDriver = nou FireFoxDriver ();
Înseamnă că WebDriver este o interfață și definim o variabilă de referință (driver) al cărei tip este o interfață.
Acum, orice obiect pe care i-l atribuim trebuie să fie o instanță a unei clase (FireFoxDriver) sau a oricărui alt driver care implementează acea interfață. În cazul nostru, FireFoxDriver este o clasă, iar interfața este WebDriver.
Când toată configurarea driverului este finalizată, executăm orice comandă Selenium, cum ar fi:
driver.getTitle ();
Consultați captura de ecran:
întrebări de interviu cu liderul echipei bazate pe scenarii
Ceea ce se întâmplă acum este că intern este creată o solicitare HTTP și trimisă la driverul de browser specific pe care l-am definit, driverul de browser folosește acel server HTTP pentru a obține solicitările HTTP și determină pașii necesari pentru implementarea comenzii Selenium
Logica noastră creată este executată pe browser, apoi rezultatul execuției este trimis înapoi la serverul HTTP și trimite din nou starea la scriptul de automatizare.
Astfel, după setarea driverului, putem accesa toate metodele încorporate din clasa driverului, cum ar fi:
- findElement ();
- închide();
- getClass (); si multe altele
Consultați Captură de ecran:
Pentru a accesa aceste metode, tastați „ conducător auto. ”În editor și va afișa toate metodele sau altfel puteți apăsa„ ctrl + spațiu ”și vă va arăta metodele.
Consultați captura de ecran:
Uneori, metodele încorporate nu sunt accesibile când apăsați „ctrl + spațiu”. Apoi, trebuie să verificați setările de cale JAVA_HOME făcute în Variabilă de mediu și să vă asigurați că sunt corecte.
Pași pentru configurarea variabilei de mediu:
- Accesați Panoul de control -> Faceți clic pe Sistem
- Accesați Setări avansate de sistem
- Faceți clic pe butonul Variabile de mediu
- Setați calea JAVA_HOME făcând clic pe butonul nou.
Selenium vine cu driverul implicit Mozilla Firefox, care este inclus în fișierul jar Selenium WebDriver. De aceea, pentru apelarea driverului Firefox, nu este necesară nicio configurare. Dacă dorim să folosim alte browsere, trebuie să-i configurăm proprietatea sistemului.
Citire recomandată => Testarea Cross Browser-ului folosind Selenium Grid
Testare cross-browser folosind Selenium WebDriver
Acum, vom vedea configurarea și execuția driverelor în browserele menționate mai jos:
# 1) Mozilla Firefox
#Două) Google Chrome
# 3) Internet Explorer
# 4) Operă
# 5) Ghost Driver sau PhantomJS
# 6) Unitate HTML
Driverele pentru browserele menționate (cu excepția Unității PhantomJS și HTML - verificați mai jos pentru acestea) pot fi descărcate de aici: SeleniumHQ
Presupunând că toți sunteți conștienți de diferitele browsere menționate mai sus, voi explica acum ce este Șofer fantomă și Driver unitate HTML funcționalitatea și cum să le configurați pentru scriptul dvs.
# 1) Driver unitate HTML
Folosind acest driver, putem face testarea fără cap a browserului, ceea ce înseamnă că nu există o interfață grafică pe care să o puteți vedea pe măsură ce rulează intern. Și nu puteți efectua toate operațiunile așa cum faceți în browserele normale.
În general, pentru testare, driverul de unitate HTML nu este recomandat. Cu toate acestea, îl putem folosi deoarece este mai rapid, cea mai ușoară implementare a WebDriver este utilizată pentru generarea datelor de testare, pentru a transmite conținutul unei pagini web către alt program sau script.
Pentru utilizarea driverului de unitate HTML nu este nevoie să instalați API-uri sau fișiere jar suplimentare. Puteți să-l utilizați după ce aveți fișierul jar independent al serverului Selenium.
Consultați codul de mai jos:
//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); } }
Ieșire : Facebook - Autentificare sau Înscriere
A TRECUT : verifyFacebookTitle
Driverul de unitate HTML nu este recomandat pentru aplicații complexe și care folosește jquery sau javascript sau HTML 5. În mod implicit, nu acceptă javascript. Prin urmare, trebuie să dați o condiție adevărată pentru a o susține.
# 2) Driver PhantomJS
Browserul PhantomJS este, de asemenea, utilizat pentru efectuarea testării browserului fără cap. Folosește un API JavaScript. Îl puteți folosi pentru testarea site-urilor fără cap și pentru a accesa pagini web. Un avantaj față de driverul de unitate HTML este că poate captura capturi de ecran. Înseamnă că testul dvs. va rula în fundal și va captura capturile de ecran.
Pentru a utiliza browserul PhantomJS cu Selenium WebDriver, trebuie să folosim și să descărcăm GhostDriver. Este o implementare a protocolului de sârmă WebDriver în browserul JS simplu pentru PhantomJS. Acum, în ultima versiune a PhantomJS, au integrat GhostDriver cu PhantomJS. Astfel, nu trebuie să-l instalăm separat acum.
Descărcați fișierul PhantomJs.exe de aici: PhantomJs
Pentru a executa PhantomJS, avem nevoie de driverul PhantomJS. Link de descărcare: Driver PhantomJS
Și trebuie să setăm fișierul de proprietate PhantomJs.binary.path, atunci când executăm scriptul.
Consultați codul de mai jos:
//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()); } }
Ieșire : https://www.facebook.com/
TRIMITE: verifyFacebookTitle
# 3) Driver Mozilla Firefox
Cum se execută WebDriver în browserul Firefox:
Pentru apelarea driverului Firefox nu este necesar să instalați sau să configurați fișiere jar suplimentare. Este driverul implicit pe care îl acceptă Selenium WebDriver.
Consultați codul de mai jos pentru executare:
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'); } }
Ieșire : Titlul paginii s-a potrivit
A TRECUT : Test_Gmail_Login
# 4) Driver Google Chrome
Cum se execută WebDriver în browserul Chrome:
Pentru apelarea driverului Google Chrome, descărcați mai întâi driverul, apoi setați proprietatea sistemului folosind codul de mai jos:
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()); } }
Ieșire : Bun venit pe rediff.com
Rediff.com: Cumpărături online, Rediffmail, Ultimele știri din India, Afaceri, Bollywood, Sport, Acțiuni, Scor live de cricket, Bani, Recenzii de filme
întrebări și răspunsuri de interviu pentru MySQL pentru o experiență de 3 ani
A TRECUT : Test_Rediff_Alert
Citește și=> Tutorial seleniu - Găsiți elemente în browserele Chrome și IE
# 5) Driver Internet Explorer
Cum se execută WebDriver în browserul IE:
Pentru apelarea driverului Internet Explorer, descărcați driverul și setați o proprietate de sistem.
Consultați codul de mai jos:
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); } }
Ieșire : Google
A TRECUT : adică șofer
# 6) Opera Driver
Pentru a apela Opera Driver, descărcați driverul și setați proprietatea sistemului.
Consultați codul de mai jos:
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()); } }
Ieșire : Creați un cont
A TRECUT : operaDriver
Citește și=> Adnotări TestNG în seleniu
Concluzie
În acest tutorial, am prezentat modul de configurare și utilizare a driverelor pentru diverse browsere.
Am văzut în ce fel driverul de unitate HTML și driverul PhantomJS sunt diferite de alte browsere utilizate în mod obișnuit. Motivul din spatele acestui fapt este că acestea nu sunt utilizate pentru navigarea obișnuită, cum ar fi Google Chrome și altele; în schimb, funcționează intern și execută comenzile noastre mai repede, deoarece nu acceptă GUI. Putem efectua, de asemenea, scripturi de pe server cu PhantomJS.
Acum, că am înțeles cum să configurăm driverele și să le facem să funcționeze pe diverse browsere, trebuie să fim clari de ce facem acest lucru. După cum știți cu toții, Selenium acceptă numai aplicații bazate pe web și pentru a le deschide avem nevoie de un browser.
Există diferite drivere (discutate mai sus) disponibile pentru a deschide aceste browsere. Un WebDriver este o interfață care conține toate metodele abstracte definite în acesta. Prin urmare, numim aceste metode care sunt discutate în acest tutorial pentru a ne îndeplini sarcinile.
Spuneți-ne dacă aveți întrebări / comentarii despre acest tutorial.
Lectură recomandată
- Tutorial Castravete Seleniu: Integrare Castravete Java Seleniu WebDriver
- Introducere în Selenium WebDriver - Tutorial Selenium # 8
- Implementarea primului nostru script WebDriver - Selenium WebDriver Tutorial # 10
- Întrebări frecvente despre seleniu
- Cum să gestionați alertele / ferestrele pop-up în Selenium WebDriver - Selenium Tutorial # 16
- Așteptare implicită și explicită în Selenium WebDriver (Tipuri de așteptări de seleniu)
- Ghid pentru generarea de rapoarte de extindere în Selenium WebDriver
- Tutorial GeckoDriver Selenium: Cum se folosește GeckoDriver în proiecte Selenium