2013-04-25 14 views
6

ja ciągle coraz unsupportedCommandException kiedy używam następujący kod:Nie można wywołać FirefoxDriver konstruktora

System.setProperty("webdriver.firefox.bin","C:\\Program Files\\Mozilla Firefox\\Firefox.exe"); 
    FirefoxProfile firefoxProfile = new FirefoxProfile(); 

    String domain = "extensions.firebug."; 
    firefoxProfile.setPreference("app.update.enabled", false); 
    firefoxProfile.addExtension(new File("D:\\\\firebug-1.11.2-fx.xpi")); 
    firefoxProfile.setPreference(domain + "currentVersion", "1.11.2"); 
    firefoxProfile.setPreference("extensions.firebug.cookies.enableSites", true); 
    firefoxProfile.setPreference("extensions.firebug.allPagesActivation", "on"); 

    firefoxProfile.setPreference(domain + "framePosition", "bottom"); 
    firefoxProfile.setPreference(domain + "defaultPanelName", "cookies"); 

    WebDriver driver = new FirefoxDriver(firefoxProfile); 
    driver.get("http://www.google.com/webhp?complete=1&hl=en"); 
    WebElement query = driver.findElement(By.name("q")); 

wersja Firefox: 20,0, Firebug 1.11.2.

Komunikat o błędzie jestem coraz to w ramach:

Exception in thread "main" org.openqa.selenium.UnsupportedCommandException: Bad request 

Command duration or timeout: 437 milliseconds 
Build info: version: '2.32.0', revision: '6c40c18', time: '2013-04-09 17:23:22' 
System info: os.name: 'Windows XP', os.arch: 'x86', os.version: '5.1', java.version: '1.6.0_24' 
Driver info: org.openqa.selenium.firefox.FirefoxDriver 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) 
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) 
    at java.lang.reflect.Constructor.newInstance(Unknown Source) 
    at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:187) 
    at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:145) 
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:554) 
    at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:216) 
    at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:111) 
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:190) 
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:183) 
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:179) 
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:96) 
    at com.vinit.tiwari.TestCookieFirefox.main(TestCookieFirefox.java:48) 

Odpowiedz

12

To może zrobić z konfiguracją hostów.

Jeśli masz linię:

127.0.0.1 domain1 domain2 domain3 localhost

go zmienić na:

127.0.0.1 localhost domain1 domain2 domain3

+1

ta jest obecnie złożony tutaj: https://code.google.com/p/selenium/issues/detail?id=3280 – desau

1

Per przyjętym odpowiedź od @APWorsley, to problem może być spowodowany wieloma pseudonimami dla adaptera sprzężenia zwrotnego w pliku /etc/hosts.

Jeśli nie masz wygodnego dostępu do usuwania lub zmiany kolejności aliasów (być może nie masz dostępu do konta root, lub Puppet regularnie zmienia plik), ponieważ teraz ustalono, że Selenium issue #3280 zostało naprawione, istnieje dostęp do konfiguracji konta i konta oraz zezwalaj na połączenia - od różnych nazw aliasu w pliku hosts.

Najpierw zbierz wszystkie możliwe aliasy pętli zwrotnej/localhost/127.0.0.1 w pliku hosts, a następnie ustaw właściwość Sterownik Firefoksa. Na przykład, jeśli miał localhost Plus localhost.localdomain można skonfigurować sterownik tak:

FirefoxProfile profile = new FirefoxProfile(); 
profile.setPreference(FirefoxProfile.ALLOWED_HOSTS_PREFERENCE, "localhost,localhost.localdomain"); 
WebDriver driver = new FirefoxDriver(profile); 
+0

Dzięki. Mam ten sam problem, gdy marionetka ciągle przepisuje ten plik. Czy istnieje sposób na trwałe zmiany tego profilu w Firefoksie? W ten sposób nie muszę aktualizować kodu Java na całym świecie. – dganesh2002

Powiązane problemy