Für Chrome
public class Chrome {
public static void main(String[] args) {
System.setProperty("webdriver.chrome.driver", "E://chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.get("http://www.google.com");
}
}
für Firefox,
public class Firefox {
public static void main(String[] args) {
WebDriver driver = new FirefoxDriver();
driver.get("http://www.google.com");
}
}
Warum müssen wir den system.setProperty
für Chrome und IE angeben?
Ich hatte auch dieselbe Frage, aber nach dem Graben fand ich:
WebDriver
verwendet den systemeigenen Browser. Selen bietet eingebaute Treiber für Firefox, aber nicht für andere Browser. Alle Treiber (Chrome Treiber, IE Treiber usw.) basieren auf der speziellen verwendeten JS Engine von jedem Browser.
Selenium WebDriver
funktioniert sehr gut mit Mozilla Firefox, da es über einen integrierten Treiberserver verfügt. Gleiches gilt jedoch nicht für Internet Explorer und Google Chrome. Firefox ist der traditionellste Browser. Daher muss für Selenium WebDriver
kein zusätzliches Dienstprogramm festgelegt werden, bevor der Browser gestartet wird. Das Selenium-Paket verweist automatisch auf den Standardspeicherort der firefox.exe, sodass der Benutzer keine anderen Eigenschaften festlegen muss.
Wenn Sie jemals die Meldung erhalten, muss der Pfad zur ausführbaren Treiberdatei vom Web-Treiber festgelegt werden. dh. driver system property “-Fehler oder ein ähnlich formuliertes Chrome-Äquivalent bedeutet, dass Sie die Treiberserver in Ihrem Browser installieren müssen. Der Treiberserver verwaltet die Anrufe zwischen den Browsern und das Selenium Wire-Protokoll.
Die Variable InternetExplorerDriver
ist ein Standalone-Server, der das Drahtprotokoll von WebDriver implementiert
Ebenso verfügt Google Chrome über keinen integrierten Server, sodass Sie einen Chrome-Treiberserver benötigen, um Ihren Selenium-Code an den Browser zu übermitteln. Sie können den Chrome-Treiberserver herunterladen.
Gegründet von hier .
Die Implementierung von FirefoxDriver, ChromeDriver und InternetExplorerDriver ist anders, daher unterscheidet sich auch die Art und Weise, wie das Objekt instantiiert wird.
Der Firefox-Treiber steuert den Firefox-Browser mithilfe eines Firefox-Plugins. Das Firefox-Profil, das verwendet wird, wird von den auf dem Computer installierten Dateien entfernt, sodass nur Selenium WebDriver.xpi enthalten ist
Der InternetExplorerDriver ist ein eigenständiger Server, der das WebDriver-Kabelprotokoll implementiert.
Der ChromeDriver wird vom Chromium-Projekt iteslf verwaltet/unterstützt. WebDriver arbeitet mit Chrome über die Chromedriver-Binärdatei (auf der Download-Seite des Chromium-Projekts). Sie müssen sowohl einen chromedriver als auch eine Version des Chrome-Browsers installiert haben. chromedriver muss sich irgendwo im Pfad Ihres Systems befinden, damit WebDriver es automatisch erkennen kann. Der Chrome-Browser selbst wird von Chromedriver im Standardinstallationspfad erkannt
Weitere Informationen finden Sie in der Selen-Dokumentation
Einfache Antwort: Jeder Browser verfügt über eine eigene WebDriver-Implementierung und wird nicht vom Selenium-Projekt verwaltet. Damit Selenium mit dem browserspezifischen Treiber interagieren kann, müssen Sie den vollständigen Pfad des Treibers angeben.
Warum muss bei Firefox kein Treiberpfad angegeben werden? In Selenium 2.0 ist Selen RC noch vorhanden und unterstützte Firefox. Ab Selenium 3.0 gibt es keinen offiziellen Support für browserspezifische Treiber. Daher müssen wir für alle Browser den Treiberpfad über System.setproperty angeben.