【问题标题】:WebDriver with firefox-x11 on MacMac 上带有 firefox-x11 的 WebDriver
【发布时间】:2010-05-16 00:32:56
【问题描述】:

我正在尝试在 Mac OS X 10.6.3 上使用 WebDriver 对 Web 应用程序运行无头测试。我的计划是用 Xvfb 运行 firefox-x11,但是 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 时,尽管显示了一些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 似乎暗示有人让它工作,但它没有包含太多细节。

【问题讨论】:

    标签: java macos firefox x11 webdriver


    【解决方案1】:

    看起来$DISPLAY 设置不正确;它是由 launchd 设置的,而不是你配置 Xvfb 使用的显示器。

    【讨论】:

    • 我无法从 WebDriver 启动 firefox-x11。我的尝试是先让它在 X11 上运行,然后再转到 Xvfb。设置$DISPLAY的正确方法是什么?
    • 如果您想这样做,请将 $DISPLAY 设置为非启动生成的内容(即:0.0)。 auto-X11-server-launching 不能很好地与无头进程配合使用。
    猜你喜欢
    • 2012-10-13
    • 2017-05-14
    • 1970-01-01
    • 2014-05-07
    • 1970-01-01
    • 2014-01-16
    • 2010-12-06
    • 1970-01-01
    • 2012-04-12
    相关资源
    最近更新 更多