webentwicklung-frage-antwort-db.com.de

Warum müssen wir die Systemeigenschaft für Chrome festlegen? IE Browser und nicht für Firefox-Browser

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?

7
SacTan

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 .

6
Sanjay Bhimani

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

1
Amanpreet Kaur

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.

0
Seetaram Hegde