WebDriver с Firefox-X11 на Mac - PullRequest
4 голосов
/ 16 мая 2010

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

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 из терминала, кажется, что он работает нормально, несмотря на некоторые безобидные ошибки . Итак, я попытался пропатчить метод 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? Этот пост , кажется, предполагает, что один человек заставил его работать, но он не содержит много деталей.

1 Ответ

2 голосов
/ 17 мая 2010

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

...