2016-08-02 14 views
0

Ich benutze Selen und ich würde Selen mit der firefox.exe aus einem bestimmten Ordner und nicht die, die bereits installiert ist verwenden. Um dies zu tun habe ich den folgenden Code:Ausführen einer anderen firefox.exe als die standardmäßig mit der RemoteWebDriver-Implementierung verwendet

System.setProperty("webdriver.firefox.bin", "./firefox-sdk/bin/firefox.exe"); 
    DesiredCapabilities cap = DesiredCapabilities.firefox(); 

    cap.setBrowserName("firefox"); 
    driver = new RemoteWebDriver(new URL(node), cap); 

Der Code funktioniert, aber das Problem ist, halten es die firefox in dem Ordner Programme laufen statt der im spcified Ordner, wenn ich setProperty verwenden, was bin ich falsch machen?

+0

Haben Sie neu kompilieren? –

+0

Ich bin auf Eclipse, also ja, schätze ich. –

+0

Nun, die Tatsache, dass Sie auf Eclipse sind, ist keine Garantie dafür. Ich denke, der grüne Pfeil in Eclipse kompiliert und führt Ihr Programm, aber es ist so lange her, seit ich Eclipse verwendet habe, dass ich mir nicht sicher sein kann –

Antwort

1

Es gibt zwei Möglichkeiten, in denen Sie die Firefox-Version starten können, welche Dateien in Ihrem Programm nicht installiert ist.

Methode 1: Verwenden FirefoxBinary

File pathToBinary = new File("./firefox-sdk/bin/firefox.exe"); 
DesiredCapabilities cap = DesiredCapabilities.firefox(); 
cap.setCapability("firefox_binary", pathToBinary); 
driver = new RemoteWebDriver(new URL(node), cap); 

Methode 2: webdriver.firefox.bin Eigenschaft Mit

In diesem Fall, dass Sie eine andere Version von Firefox in dem obigen Pfad installieren und dann können Sie die Eigenschaft webdriver.firefox.bin mit System.setProperty() setzen

+0

Wie würde ich die erste Methode mit der RemoteWebDriver-Implementierung tun? Ich brauche es, um die RemoteWebDriver-Implementierung zu sein. –

+0

Und was meinst du mit installiert? weil ja die dateien von firefox in der "./firefox-sdk/" und die .exe in der "./firefox-sdk/bin/firefox.exe" in meinem fall ist, überprüfe ich sogar, ob der java code sie findet und ja, es findet es. Aber es ist wie Selen es zu ignorieren. –

+0

Ich habe meine Antwort geändert, um mit der Implementierung von 'RemoteWebDriver' zu arbeiten. – Paras

0

Sie müssen Firefox in webdriver.firefox.bin Verzeichnis installiert haben. Diese Installation und die Standardinstallation müssen anders sein.

haben Sie einen Blick auf dieses Thema: how to use different version of firefox using webdriver?

+0

Ich habe mir diesen Thread angesehen, bevor ich meins geschrieben habe, aber ich verstehe es nicht, was ist der webdriver.firefox.bin? Ist das nicht genug, um die Dateien von firefox woanders zu speichern? –

+0

Ja würde es. Aber die Anforderung war, eine andere Instanz zu öffnen. Wir hätten die gleiche Installation auch machen können. In diesem Fall wurde ein neues Profil benötigt. –