2010-05-16 3 views
4

Я пытаюсь запустить безгласный тест для веб-приложения с помощью WebDriver в Mac OS X 10.6.3. Мой план - запустить firefox-x11 с помощью Xvfb, но WebDriver не может запустить firefox-x11. Мой код:WebDriver с firefox-x11 на Mac

System.setProperty("webdriver.firefox.bin", 
        "/opt/local/bin/firefox-x11-devel-standalone"); 
WebDriver browser = new FirefoxDriver(); 
try { 
    browser.get("http://google.com"); 
} finally { 
    browser.close(); 
} 

, но это не удается с:

org.openqa.selenium.WebDriverException: Unable to start firefox cleanly. 

Exit value: 1 
Ran from: [/opt/local/bin/firefox-x11-devel-standalone, --verbose, -silent] 

System info: os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.6.3', java.version: '1.6.0_17' 
Driver info: driver.version: firefox 
    at org.openqa.selenium.firefox.FirefoxBinary.copeWithTheStrangenessOfTheMac(FirefoxBinary.java:200) 
    at org.openqa.selenium.firefox.FirefoxBinary.startProfile(FirefoxBinary.java:83) 
    at org.openqa.selenium.firefox.FirefoxBinary.clean(FirefoxBinary.java:264) 
    at org.openqa.selenium.firefox.FirefoxLauncher.startProfile(FirefoxLauncher.java:66) 
    at org.openqa.selenium.firefox.internal.NewProfileExtensionConnection.<init>(NewProfileExtensionConnection.java:45) 
    at org.openqa.selenium.firefox.internal.ExtensionConnectionFactory.connectTo(ExtensionConnectionFactory.java:44) 

Когда я вручную запустить /opt/local/bin/firefox-x11-devel-standalone из терминала, кажется, работает нормально, несмотря на некоторое harmless errors показано. Итак, я попытался исправить метод org.openqa.selenium.firefox.FirefoxBinary.copeWithTheStrangenessOfTheMac(ProcessBuilder) игнорировать ошибки и значения выхода из 1. Теперь она идет дальше, но терпит неудачу с:

Caused by: org.openqa.selenium.WebDriverException: Failed to connect to binary FirefoxBinary(/opt/local/bin/firefox-x11-devel-standalone) on port 7055; process output follows: 
Xlib: extension "RANDR" missing on display "/tmp/launch-tElCRZ/org.x:0". 
Dynamic session lookup supported but failed: launchd did not provide a socket path, verify that org.freedesktop.dbus-session.plist is loaded! 

(firefox-bin:88837): Gtk-CRITICAL **: gtk_widget_has_screen: assertion `GTK_IS_WIDGET (widget)' failed 
ˇXlib: extension "RANDR" missing on display "/tmp/launch-tElCRZ/org.x:0". 
Dynamic session lookup supported but failed: launchd did not provide a socket path, verify that org.freedesktop.dbus-session.plist is loaded! 

(firefox-bin:88877): Gtk-CRITICAL **: gtk_widget_has_screen: assertion `GTK_IS_WIDGET (widget)' failed 
ˇ 
System info: os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.6.3', java.version: '1.6.0_17' 
Driver info: driver.version: firefox 
    at org.openqa.selenium.firefox.internal.NewProfileExtensionConnection.connectToBrowser(NewProfileExtensionConnection.java:60) 
    at org.openqa.selenium.firefox.internal.NewProfileExtensionConnection.<init>(NewProfileExtensionConnection.java:49) 
    at org.openqa.selenium.firefox.internal.ExtensionConnectionFactory.connectTo(ExtensionConnectionFactory.java:44) 
    ... 4 more 
Caused by: org.openqa.selenium.firefox.NotConnectedException: Failed to start up socket within 45000 
    at org.openqa.selenium.firefox.internal.AbstractExtensionConnection.connectToBrowser(AbstractExtensionConnection.java:143) 
    at org.openqa.selenium.firefox.internal.NewProfileExtensionConnection.connectToBrowser(NewProfileExtensionConnection.java:58) 
    ... 6 more 

Кто-нибудь получил WebDriver работать с FireFox-x11? This post, похоже, предполагает, что один человек получил его работу, но он не содержит подробностей.

ответ

2

Похоже, что $DISPLAY настроен неправильно; он устанавливается стартом вместо экрана, который вы настроили для использования Xvfb.

+0

Я не могу запустить firefox-x11 из WebDriver. Моя попытка - сначала запустить его с X11, а затем перейти к Xvfb. Каков правильный способ установки '$ DISPLAY'? –

+0

Если вы хотите это сделать, установите $ DISPLAY в то, что не запускается с помощью запуска (т. Е.: 0.0). Авто-X11-сервер-запуск не очень хорошо работает с безголовыми процессами. –