2017-02-01 10 views
1

Win 7 und FireFox läuft in deutscher Sprache.
Win 7 hat alle verfügbaren Updates installiert.Selenium 3.0.1 stürzt FireFox 51.0.1 während driver.quit ab() @ Win 7 Home Premium & GeckoDriver 0.13.0

Gleiches für 32 und 64 Bit GeckoDriver! (mein Win 7 ist 64 Bit; mein FireFox ist 32 Bit).

Gleiches für GeckoDriver 0.14.

Ist das nur ein Problem auf meinem PC?

driver.quit() arbeitet an meinem InternetExplorer ohne ein Problem.

package JS_JFrame1;          

import org.openqa.selenium.WebDriver;      
import org.openqa.selenium.firefox.FirefoxDriver;   

public class SeleniumFireFoxMinimal1 { 



public static void main(String[] args) throws InterruptedException { 

    System.setProperty("webdriver.gecko.driver", "e:\\geckodriver.exe"); 

    WebDriver driver = new FirefoxDriver();     

    driver.get("http://www.toolsqa.com");      

    Thread.sleep(5000);         

    driver.quit();           

}                

}                  

Andere Selen wie diese Befehle funktionieren sehr gut:

element = driver.findElement(By.id("sinp"));    

    System.out.println("Element found!");     

    element.clear();             

    element.sendKeys("black");          

    element.submit();              

Eclipse-Console-Ausgang:

1485978825934 geckodriver INFO Listening on 127.0.0.1:21352 Feb 01, 2017 8:53:46 PM org.openqa.selenium.remote.ProtocolHandshake createSession INFORMATION: Attempting bi-dialect session, assuming Postel's Law holds true on the remote end 1485978826606 mozprofile::profile INFO Using profile path C:\Users\xxxxxxx\AppData\Local\Temp\rust_mozprofile.qNYZq4KKbeGl 1485978826606 geckodriver::marionette INFO Starting browser C:\Program Files (x86)\Mozilla Firefox\firefox.exe 1485978826637 geckodriver::marionette INFO Connecting to Marionette on localhost:51926 1485978828021 Marionette INFO Listening on port 51926 Feb 01, 2017 8:53:52 PM org.openqa.selenium.remote.ProtocolHandshake createSession INFORMATION: Detected dialect: W3C JavaScript warning: https://www.youtube.com/yts/jsbin/player-de_DE-vflWB2cvt/base.js , line 664: Error: WebGL: getParameter: parameter: invalid enum value [Child 4416] ###!!! ABORT: Aborting on channel error.: file c:/builds/moz2_slave/m-rel-w32-00000000000000000000/build/src/ipc/glue/MessageChannel.cpp, line 2056 Feb 01, 2017 8:54:07 PM org.openqa.selenium.os.UnixProcess destroy SCHWERWIEGEND: Unable to kill process with PID 4608

enter image description here

+0

Haben Sie versucht, nach einem Neustart des Computers ausgeführt werden? –

+0

Ja Jeroen, 20 mal an 3 verschiedenen Tagen. –

+0

Verwenden Sie stattdessen Firefox 50. Es sollte funktionieren – mosaad

Antwort

0

Es ist eine bekannte Firefox/geckodriver Problem mit dem Beenden-Treiber Weitere Informationen finden Sie unter here.

Es erscheint in einigen FF-Versionen, einige sagen, es ist behoben, manche sagen, es ist nicht. Ich konnte keine bessere Lösung dafür finden, also habe ich "alten" Firefox-Treiber und FF v47.0.2 eingeschaltet, was gut funktioniert.

1

Satz browser.tabs.remote.autostart.2 bis false.

FirefoxOptions options = new FirefoxOptions(); 
options.BrowserExecutableLocation = Settings.Default.FirefoxBinary; 

>>>> profile.SetPreference("browser.tabs.remote.autostart.2", false); 
FirefoxProfile profile = new FirefoxProfile(); 
.... 
options.Profile = profile; 
driverSet.Driver = new FirefoxDriver(options); 
+0

Ich habe 2 dieser Autostart-Einträge in etwa: Config - eine mit der Erweiterung 2 und eine ohne Erweiterung. Ich habe jetzt beide Einträge auf false gesetzt, aber es hat nichts geändert. FireFox stört immer noch (natürlich habe ich FireFox neu gestartet). Was ist mit den anderen 6 Zeilen Code? Brauche ich sie auch in meinem Java-Selenium-Snip? Vielen Dank. –

0

Ich habe einen Workaround dafür gefunden. Mein Code ist in C#

Utility.Instance.KillProcess("firefox"); 
System.Windows.Forms.SendKeys.SendWait("{ESC}"); 
Utility.Instance.KillProcess("geckodriverserver"); 

Ich hoffe, es wird Ihnen helfen.

1

Das Problem bezieht sich auf die Tatsache, dass Firefox die Multiprozessumgebung aus der Firefox-Version> = 50 verwendet, und es scheint, dass Selen nicht damit umgehen kann.

Hinzufügen der folgenden Zeilen sollten dieses Problem beheben:

FirefoxProfile ffProfile = new FirefoxProfile(); 
ffProfile.setPreference("browser.tabs.remote.autostart.2", false); 
WebDriver driver = new FirefoxDriver(newFirefoxOptions().setProfile(ffProfile)); 
Verwandte Themen