how run selenium webdriver different popular browsers
Selenium unterstützt nur webbasierte Anwendungen. Zum Öffnen benötigen wir einen Browser. Selenium kann verschiedene Browser für die Testautomatisierung unterstützen.
In diesem Tutorial erklären wir, wie Treiber für die verschiedenen auf dem Markt verfügbaren Browser eingerichtet werden.
In der aktuellen Branche gibt es nur drei beliebte Browser, die weit verbreitet sind, d. H. Google Chrome, Mozilla Firefox und Internet Explorer. Selenium unterstützt jedoch auch andere Browser. Um unser Skript in verschiedenen Browsern auszuführen, benötigen wir den Treiber dieses Browsers.
=> Lesen Sie hier alle Selenium Tutorials
Was du lernen wirst:
- So richten Sie Treiber für die verschiedenen Browser ein
- Browserübergreifendes Testen mit Selenium WebDriver
- Fazit
So richten Sie Treiber für die verschiedenen Browser ein
Empfohlenes Tool:
# 1) LambdaTest
Führen Sie Selenium-Automatisierungstests auf einem skalierbaren, sicheren und zuverlässigen Cloud-basierten Selenium Grid online durch. Beschleunigen Sie Ihre Selenium-Testautomatisierung und erhöhen Sie gleichzeitig Ihre Testabdeckung, indem Sie in einer Online-Infrastruktur mit mehr als 2000 Desktop- und mobilen Browserumgebungen testen.
Wenn wir zum ersten Mal mit der Selenium-Automatisierung beginnen, lautet unsere allererste Codezeile wie folgt:
WebDriver-Treiber = neuer FireFoxDriver ();
Dies bedeutet, dass WebDriver eine Schnittstelle ist und wir eine Referenzvariable (Treiber) definieren, deren Typ eine Schnittstelle ist.
Jetzt muss jedes Objekt, das wir ihm zuweisen, eine Instanz einer Klasse (FireFoxDriver) oder eines anderen Treibers sein, der diese Schnittstelle implementiert. In unserem Fall ist FireFoxDriver eine Klasse und die Schnittstelle ist WebDriver.
Wenn alle Treiber eingerichtet sind, führen wir einen Selenium-Befehl aus, wie z.
driver.getTitle ();
Siehe Screenshot:
c ++ 1 Sekunde warten
Was jetzt passiert, ist, dass intern eine HTTP-Anforderung erstellt und an den von uns definierten spezifischen Browsertreiber gesendet wird. Der Browsertreiber verwendet diesen HTTP-Server zum Abrufen der HTTP-Anforderungen und bestimmt die Schritte, die zum Implementieren des Selenium-Befehls erforderlich sind.
Unsere erstellte Logik wird im Browser ausgeführt, dann wird das Ausführungsergebnis an den HTTP-Server zurückgesendet und der Status erneut an das Automatisierungsskript zurückgesendet.
Nach dem Festlegen des Treibers können wir auf alle integrierten Methoden der Treiberklasse zugreifen, z.
- findElement ();
- schließen();
- getClass (); und viele mehr
Siehe Screenshot:
Um auf diese Methoden zuzugreifen, geben Sie “ Treiber. “Im Editor werden alle Methoden angezeigt, oder Sie können„ Strg + Leertaste “drücken und die Methoden werden angezeigt.
Siehe Screenshot:
Manchmal ist auf integrierte Methoden nicht zugegriffen werden, wenn Sie 'Strg + Leertaste' drücken. Anschließend müssen Sie die in Umgebungsvariablen vorgenommenen JAVA_HOME-Pfadeinstellungen überprüfen und sicherstellen, dass sie korrekt sind.
Schritte zum Einrichten der Umgebungsvariablen:
- Gehen Sie zu Systemsteuerung -> Klicken Sie auf System
- Gehen Sie zu Erweiterte Systemeinstellungen
- Klicken Sie auf die Schaltfläche Umgebungsvariablen
- Legen Sie den JAVA_HOME-Pfad fest, wenn Sie auf die neue Schaltfläche klicken.
Selenium wird mit dem standardmäßigen Mozilla Firefox-Treiber geliefert, der in der JAR-Datei Selenium WebDriver enthalten ist. Aus diesem Grund ist zum Aufrufen des Firefox-Treibers kein Setup erforderlich. Wenn wir andere Browser verwenden möchten, müssen wir die Systemeigenschaft einrichten.
Empfohlene Lektüre => Cross-Browser-Tests mit Selenium Grid
Browserübergreifendes Testen mit Selenium WebDriver
Jetzt sehen wir die Einrichtung und Ausführung von Treibern in den unten genannten Browsern:
# 1) Mozilla Firefox
#zwei) Google Chrome
#3) Internet Explorer
# 4) Oper
# 5) Ghost Driver oder PhantomJS
# 6) HTML-Einheit
Die Treiber für die genannten Browser (außer PhantomJS und HTML Unit - siehe unten) können hier heruntergeladen werden: SelenHQ
Angenommen, Sie alle kennen die verschiedenen oben genannten Browser, werde ich nun erklären, was ist Geisterfahrer und HTML-Unit-Treiber Funktionalität und wie Sie sie für Ihr Skript einrichten.
# 1) HTML-Einheitentreiber
Mit diesem Treiber können wir Headless-Browsertests durchführen, was bedeutet, dass es keine grafische Benutzeroberfläche gibt, die Sie sehen können, wenn sie intern ausgeführt wird. Und Sie können nicht alle Vorgänge ausführen, wie Sie es in normalen Browsern tun.
Im Allgemeinen wird zum Testen der HTML-Einheitentreiber nicht empfohlen. Wir können es jedoch verwenden, da es schneller ist. Die leichteste Implementierung von WebDriver wird zum Generieren von Testdaten verwendet, um den Inhalt einer Webseite an ein anderes Programm oder Skript zu übergeben.
Für die Verwendung des HTML Unit-Treibers müssen keine zusätzlichen APIs oder JAR-Dateien installiert werden. Sie können es verwenden, sobald Sie eine eigenständige JAR-Datei für den Selenium-Server haben.
Siehe folgenden Code:
//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); } }
Ausgabe : Facebook - Anmelden oder Anmelden
BESTANDEN : verifyFacebookTitle
Der HTML Unit-Treiber wird für komplexe Anwendungen nicht empfohlen und verwendet JQuery oder Javascript oder HTML 5. Standardmäßig wird Javascript nicht unterstützt. Daher müssen Sie die Bedingung wahr geben, um sie zu unterstützen.
# 2) PhantomJS-Treiber
Der PhantomJS-Browser wird auch zum Durchführen von Headless-Browsertests verwendet. Es verwendet eine JavaScript-API. Sie können es zum Testen von Headless-Websites verwenden und auf Webseiten zugreifen. Ein Vorteil gegenüber dem HTML Unit Driver besteht darin, dass Screenshots aufgenommen werden können. Dies bedeutet, dass Ihr Test im Hintergrund ausgeführt wird und die Screenshots erfasst werden.
Um den PhantomJS-Browser mit Selenium WebDriver verwenden zu können, müssen wir GhostDriver verwenden und herunterladen. Es ist eine Implementierung des WebDriver-Drahtprotokolls in einem einfachen JS für PhantomJS-Browser. In der neuesten Version von PhantomJS hatten sie GhostDriver in PhantomJS integriert. Daher müssen wir es jetzt nicht separat installieren.
Laden Sie die Datei PhantomJs.exe hier herunter: PhantomJs
Zur Ausführung des PhantomJS benötigen wir den PhantomJS-Treiber. Download-Link: PhantomJS-Treiber
Und wir müssen die Eigenschaftendatei PhantomJs.binary.path festlegen, wenn wir das Skript ausführen.
Siehe folgenden Code:
//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()); } }
Ausgabe : https://www.facebook.com/
PASSED: verifyFacebookTitle
# 3) Mozilla Firefox-Treiber
So führen Sie WebDriver im Firefox-Browser aus:
Zum Aufrufen des Firefox-Treibers müssen keine zusätzlichen JAR-Dateien installiert oder konfiguriert werden. Dies ist der Standardtreiber, den Selenium WebDriver unterstützt.
Siehe folgenden Code für die Ausführung:
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'); } }
Ausgabe : Seitentitel übereinstimmt
BESTANDEN : Test_Gmail_Login
# 4) Google Chrome-Treiber
So führen Sie WebDriver im Chrome-Browser aus:
Laden Sie zum Aufrufen des Google Chrome-Treibers zuerst den Treiber herunter und legen Sie dann die Systemeigenschaften mit dem folgenden Code fest:
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()); } }
Ausgabe : Willkommen bei rediff.com
Rediff.com: Online-Shopping, Rediffmail, Neueste Nachrichten aus Indien, Business, Bollywood, Sport, Aktien, Live-Cricket-Score, Geld, Filmkritiken
BESTANDEN : Test_Rediff_Alert
Lesen Sie auch=> Selen Tutorial - Suchen Sie Elemente in Chrome- und IE-Browsern
# 5) Internet Explorer-Treiber
So führen Sie WebDriver im IE-Browser aus:
Laden Sie zum Aufrufen des Internet Explorer-Treibers den Treiber herunter und legen Sie eine Systemeigenschaft fest.
Was ist der beste E-Mail-Anbieter?
Siehe folgenden Code:
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); } }
Ausgabe : Google
BESTANDEN : ieDriver
# 6) Opera-Treiber
Laden Sie zum Aufrufen von Opera Driver den Treiber herunter und legen Sie die Systemeigenschaft fest.
Siehe folgenden Code:
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()); } }
Ausgabe : Ein Konto erstellen
BESTANDEN : operaDriver
Lesen Sie auch=> TestNG-Anmerkungen in Selen
Fazit
In diesem Tutorial habe ich beschrieben, wie Sie Treiber für verschiedene Browser einrichten und verwenden.
Wir haben gesehen, wie sich HTML Unit Driver und PhantomJS Driver von anderen häufig verwendeten Browsern unterscheiden. Der Grund dafür ist, dass sie nicht für das allgemeine Surfen wie Google Chrome und andere verwendet werden. Stattdessen arbeiten sie intern und führen unsere Befehle schneller aus, da sie die GUI nicht unterstützen. Wir können auch serverseitiges Scripting mit PhantomJS durchführen.
Nachdem wir verstanden haben, wie Treiber eingerichtet und in verschiedenen Browsern zum Laufen gebracht werden, müssen wir uns darüber im Klaren sein, warum wir dies tun. Wie Sie alle wissen, unterstützt Selenium nur webbasierte Anwendungen. Zum Öffnen benötigen wir einen Browser.
Zum Öffnen dieser Browser stehen verschiedene Treiber (siehe oben) zur Verfügung. Ein WebDriver ist eine Schnittstelle, die alle darin definierten abstrakten Methoden enthält. Daher rufen wir diese in diesem Lernprogramm beschriebenen Methoden auf, um unsere Aufgaben auszuführen.
Lassen Sie uns wissen, wenn Sie Fragen oder Kommentare zu diesem Tutorial haben.
Literatur-Empfehlungen
- Cucumber Selenium Tutorial: Integration von Cucumber Java Selenium WebDriver
- Einführung in Selenium WebDriver - Selenium Tutorial # 8
- Implementierung unseres ersten WebDriver-Skripts - Selenium WebDriver Tutorial # 10
- FAQs zu Selen
- Umgang mit Warnungen / Popups in Selenium WebDriver - Selenium Tutorial # 16
- Implizites und explizites Warten in Selenium WebDriver (Arten von Selen-Wartezeiten)
- Handbuch zum Generieren von Extent-Berichten in Selenium WebDriver
- GeckoDriver Selenium Tutorial: Verwendung von GeckoDriver in Selenium-Projekten