Selenium Webdriver – Starten von Browsern

In diesem Artikel werden wir einen detaillierten Blick auf die Selenium WebDriver-Befehle werfen, die zum Starten von Browsern verwendet werden. Wir werden auch die verschiedenen zusätzlichen Anpassungen lernen, die für bestimmte Browser wie Chrome, Firefox, Internet Explorer und Safari erforderlich sind.
Inhaltsübersicht
Den Befehl zum Starten des Browsers verstehen
Wie bereits in früheren Tutorials erwähnt, ruft Selenium WebDriver native Methoden verschiedener Browser auf, um sie zu automatisieren. Deshalb haben wir verschiedene WebDriver für verschiedene Browser in Selenium, wie z.B. FirefoxDriver für Firefox, ChromeDriver für Google Chrome, InternetExplorerDriver für Internet Explorer, usw. Nehmen wir nun das Beispiel des Starts von Firefox und versuchen wir, den Befehl im Detail zu verstehen:
WebDriver driver = new FirefoxDriver();
Dies ist die Java-Implementierung des Starts des Browsers in Selenium. Hier ist die ‚WebDriver‘-Schnittstelle und wir erstellen eine ‚driver‘-Referenzvariable vom Typ WebDriver, die mit der Klasse ‚FireFoxDriver‘ instanziiert wird. Für diejenigen, die sich mit Java nicht so gut auskennen, ist eine Schnittstelle wie ein Vertrag, an den sich die Klassen, die sie implementieren, halten müssen. Die Schnittstelle enthält eine Reihe von Variablen und Methoden ohne Körper (keine Implementierung, nur ein Methodenname und eine Signatur). Wir können keine Objekte aus Schnittstellen instanziieren.
Daher ist die folgende Codezeile falsch und führt zu einem Kompilierungsfehler mit der Meldung „Cannot instantiate the type WebDriver“.
WebDriver driver = new WebDriver();
Um Treiberobjekte zu instanziieren, benötigen wir Klassen wie FirefoxDriver oder ChromeDriver, die die WebDriver-Schnittstelle implementieren. Mit anderen Worten: Diese Treiberklassen folgen dem WebDriver-Vertrag, indem sie alle Methoden der WebDriver-Schnittstelle implementieren. Dadurch werden die verschiedenen Arten von Fahrerklassen vereinheitlicht und folgen demselben Protokoll.
Beachten Sie, dass wir auch eine Referenzvariable vom Typ FirefoxDriver erstellen können:
FirefoxDriver driver = new FirefoxDriver();
Das Vorhandensein eines WebDriver-Referenzobjekts ist jedoch hilfreich, wenn mehrere Browser getestet werden, da dasselbe Treiberobjekt verwendet werden kann, um einen der gewünschten browserspezifischen Treiber zuzuweisen.
Firefox starten
Firefox ist einer der am weitesten verbreiteten Browser für die Automatisierung. Die folgenden Schritte sind erforderlich, um Firefox zu starten:
- Laden Sie die Datei geckodriver.exe von der GeckoDriver Github Release Page herunter. Vergewissern Sie sich, dass Sie die richtige Treiberdatei für Ihre Plattform und Betriebssystemversion herunterladen.
- Setzen Sie dieSystemeigenschaft auf Ihrem Computer für „webdriver.gecko.driver“ mit dem Pfad geckodriver.exe – System.setProperty(„webdriver.gecko.driver“, „geckodriver.exe path“);
Schnipsel zum Ausführen von Firefox –
public class FirefoxBrowserLaunchDemo {
public static void main(String[] args) {
//Creating a driver object referencing WebDriver interface
WebDriver driver;
//Setting webdriver.gecko.driver property
System.setProperty("webdriver.gecko.driver", pathToGeckoDriver + "\\geckodriver.exe");
//Instantiating driver object and launching browser
driver = new FirefoxDriver();
//Using get() method to open a webpage
driver.get("https://ittester.sk");
//Closing the browser
driver.quit();
}
}
Start Chrom
Um Chrome in Selenium auszuführen, müssen wir die Systemeigenschaft webdriver.chrome.driver so einstellen, dass sie auf die ausführbare Chrome-Treiberdatei verweist:
- Laden Sie die neueste ChromeDriver-Binärdatei von der Download-Seite herunter Chromium.org Download-Seite und legen Sie die ausführbare Datei auf Ihrem lokalen Rechner ab.
- Setzen Sie die Eigenschaft webdriver.chrome.driver auf den Speicherort der Datei chromeDriver.exe als-
System.setProperty(„webdriver.chrome.driver“, „chromeDriver.exe Pfad“);
Snippet zum Starten von Chrome:
public class ChromeBrowserLaunchDemo {
public static void main(String[] args) {
//Creating a driver object referencing WebDriver interface
WebDriver driver;
//Setting the webdriver.chrome.driver property to its executable's location
System.setProperty("webdriver.chrome.driver", "/lib/chromeDriver/chromedriver.exe");
//Instantiating driver object
driver = new ChromeDriver();
//Using get() method to open a webpage
driver.get("https://ittester.sk");
//Closing the browser
driver.quit();
}
}
Internet Explorer starten
Ähnlich wie bei ChromeDriver muss für den InternetExplorer-Treiber die Eigenschaft „webdriver.ie.driver“ mit dem Speicherort von IEDriverServer.exe festgelegt werden. Sie können die Datei IEDriverServer.exe herunterladen
hier
.
Sie können das folgende Codefragment verwenden, um den IE zu starten:
public class IEBrowserLaunchDemo {
public static void main(String[] args) {
//Creating a driver object referencing WebDriver interface
WebDriver driver;
//Setting the webdriver.ie.driver property to its executable's location
System.setProperty("webdriver.ie.driver", "/lib/IEDriverServer/IEDriverServer.exe");
//Instantiating driver object
driver = new InternetExplorerDriver();
//Using get() method to open a webpage
driver.get("https://ittester.sk");
//Closing the browser
driver.quit();
}
}
Safari starten
Der Safari-Browser erfordert keine zusätzliche Konfiguration und kann direkt von einer Instanz mit SafariDriver gestartet werden.
Der folgende Codeausschnitt kann verwendet werden, um Safari zu starten:
public class SafariBrowserLaunchDemo {
public static void main(String[] args) {
//Creating a driver object referencing WebDriver interface
WebDriver driver;
//Instantiating driver object with SafariDriver
driver = new SafariDriver();
//Using get() method to open a webpage
driver.get("https://ittester.sk");
//Closing the browser
driver.quit();
}
}