代码之家  ›  专栏  ›  技术社区  ›  Binil Thomas

Mac上带有Firefox-X11的Webdriver

  •  4
  • Binil Thomas  · 技术社区  · 14 年前

    我试图在macosx10.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 似乎是有人把它弄好了,但里面没有太多细节。

    1 回复  |  直到 14 年前
        1
  •  2
  •   Nicholas Riley    14 年前

    看起来像 $DISPLAY 设置不正确;它是通过launchd设置的,而不是配置xvfb使用的显示器。