33

我正在运行一些硒测试。当我直接从 Eclipse 启动它们时,一切正常。但是当我通过 Maven 启动它们时,会发生以下异常:

org.openqa.selenium.WebDriverException(Failed to connect to binary FirefoxBinary(C:\winapp\Firefox\firefox.exe) on port 7055; process output follows: 
null
Build info: version: '2.26.0', revision: '18040', time: '2012-11-02 09:44:45'
System info: os.name: 'Windows 7', os.arch: 'x86', os.version: '6.1', java.version: '1.6.0_35'
Driver info: driver.version: FirefoxDriver)

我正在使用 Firefox 10.0.10 ESR。我也尝试过使用 Selenium 2.25.0。

这是我最新版本的 pom.xml:

<dependencies>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.10</version>
    </dependency>
    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-java</artifactId>
        <version>2.26.0</version>
    </dependency>
    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-server</artifactId>
        <version>2.26.0</version>
        <exclusions>
            <exclusion>
                <groupId>javax.servlet</groupId>
                <artifactId>servlet-api</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    <dependency>
        <groupId>com.thoughtworks.xstream</groupId>
        <artifactId>xstream</artifactId>
        <version>1.4.1</version>
        <type>jar</type>
    </dependency>
    <dependency>
        <groupId>org.jdom</groupId>
        <artifactId>jdom2</artifactId>
        <version>2.0.3</version>
    </dependency>
</dependencies>

如果我可以为您提供更多信息,请告诉我。

编辑:更新 pom.xml

edit2:最让我惊奇的是,我可以从 Eclipse 运行测试而不会出现问题。它们只是发生了,例如,如果我调用“mvn install”

4

11 回答 11

30

当我遇到这个错误时,它通常是两件事之一。

Selenium 版本不支持浏览器版本 仔细检查从 Eclipse 与 Maven 运行时 Selenium/浏览器版本是否相同。仔细检查 Eclipse 和 Maven 配置为使用相同的 Selenium 版本。当我的浏览器自动更新时,这发生在我身上,所以我在浏览器中关闭了它。

Selenium 测试以无头模式运行, 如果您在与 Eclipse 相同的机器上手动执行 mvn,则不太可能。在我的 Jenkins 服务器上通过 Maven 运行 Selenium 时,这发生在我身上。Jenkins 服务器以无头模式运行。花了我一分钟来弄清楚无头的东西,我想我在 Linux 中设置了一个 DISPLAY 环境变量或其他东西。

于 2012-12-03T05:33:11.793 回答
5

我弄清楚问题出在哪里。

我加载了一些扩展来添加到我用来实例化 FireFoxDriver 的 FirefoxProfile。这些插件位于 Java/main/resources 下。在 Eclipse 中一切正常,但我无法通过 Maven 访问这些插件。将这些文件复制到临时文件夹并从那里加载它们后,它甚至可以从 Maven 工作。

感谢您的帮助

于 2012-12-03T11:22:44.070 回答
3

尝试将此添加到您的 pom

更新:

<dependency>
    <groupId>org.seleniumhq.webdriver</groupId>
    <artifactId>selenium-firefox-driver</artifactId>
    <version>2.XX.X</version>
</dependency>

<dependency>
    <groupId>org.seleniumhq.selenium</groupId>
    <artifactId>selenium-server</artifactId>
    <version>2.XX.X</version>
</dependency> 
于 2012-11-22T14:57:00.730 回答
1

Linux 更新后出现了类似的问题。我们测试了许多 selenium 版本(2.42.2 和 2.43.1)和 firefox(27.0.1 到 32.0.2)的组合,但问题始终存在。

我们在 OpenMandriva 下,项目在 Eclipse 和 Maven 下。

我们为我们找到了一个解决方案,即替换以下 maven 依赖项

    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-java</artifactId>
        <version>2.43.1</version>
    </dependency>   

由以下所有:

    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-firefox-driver</artifactId>
        <version>2.43.1</version>
    </dependency>

    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-support</artifactId>
        <version>2.43.1</version>
    </dependency>   

    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-api</artifactId>
        <version>2.43.1</version>
    </dependency>

    <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-lang3</artifactId>
        <version>3.0</version>
    </dependency>

    <dependency>
        <groupId>org.apache.httpcomponents</groupId>
        <artifactId>httpclient</artifactId>
        <version>4.3.5</version>
    </dependency>

我想知道这个解决方案是否只是隐藏了真正的问题?

于 2014-09-24T14:21:31.367 回答
0

如果您已将 Firefox 和 Selenium 都更新到最新版本以尝试解决此问题,但您仍然面临该问题,则您可能已使用“重新启动以更新”来更新 Firefox。

关闭 Firefox 并确保 Firefox 可执行文件不再运行。然后试试你的测试。它现在应该可以工作了。

我猜这与您使用“重新启动以更新”时 Firefox 二进制文件的确切更新时间有关

于 2013-12-17T13:57:57.207 回答
0

我在 Firefox 36 上遇到了这个问题,人们在 35 和 44 也面临同样的问题。

总之,将您的 Firefox 升级到 37 或将其降级到 33 以下。

于 2015-04-01T13:13:14.813 回答
0

ios-server-0.6.5-jar-with-dependencies.jar在与此作斗争并尝试了此处列出的大多数(如果不是全部)选项之后,我终于通过在我的构建路径中删除一个未使用的 JAR - 并使用FF34selenium jars的组合来摆脱这个错误2.48.2

只是想将此作为另一种选择发布,以防有​​人遇到这个令人衰弱的问题。

于 2015-11-25T21:31:42.453 回答
0
my recommendation is 

    ===> switch to firefox version 50.0 [latest One] , 

    ===> download the gecko driver from [.](https://github.com/mozilla/geckodriver/releases)  and 

    ===> Selenium version 3.0.1
     <dependency>
                <groupId>org.seleniumhq.selenium</groupId>
                <artifactId>selenium-java</artifactId>
                <version>3.0.1</version>
     </dependency>

    ==> On your Code 
private WebDriver driver;
System.setProperty("webdriver.gecko.driver", "PATH to GECKO DRIVER");
        driver = new FirefoxDriver();

    and yes you see the below output in your console :


    Dec 17, 2016 6:40:45 PM org.openqa.selenium.remote.ProtocolHandshake createSession
    INFO: Attempting bi-dialect session, assuming Postel's Law holds true on the remote end
    14819XXXXXXX5   mozprofile::profile INFO    Using profile path C:\Users\User\AppData\Local\XXXXX\rust_XXXprofile.OXXXXXXXXXXX7S
    148XXXXXXXXX0   geckodriver::marionette INFO    Starting browser C:\Program Files\Mozilla Firefox\firefox.exe
    148XXXXXXXXX1   geckodriver::marionette INFO    Connecting to Marionette on localhost:XXXXXXX
    148198XXXX077   Marionette  INFO    Listening on port 53532
    Dec 17, 2016 6:40:55 PM org.openqa.selenium.remote.ProtocolHandshake createSession
    INFO: Detected dialect: W3C
    [Child 4104] ###!!! ABORT: Aborting on channel error.: file c:/builds/moz2_slave/m-rel-w32-00000000000000000000/build/src/ipc/glue/MessageChannel.cpp, line XXXX
    Dec 17, 2016 6:41:13 PM org.openqa.selenium.os.UnixProcess destroy
于 2016-12-17T13:25:40.607 回答
0

尝试使用最新的 selenium 服务器版本,您需要检查浏览器和 selenium 服务器之间的兼容性。

    <dependency>
    <groupId>org.seleniumhq.selenium</groupId>
    <artifactId>selenium-java</artifactId>
    <version>3.141.59</version>
    </dependency> 
于 2019-08-11T07:28:39.110 回答
-1

找不到 firefoxbinary 路径。请在使用 firefox 驱动程序之前设置 firefox 路径。

System.setProperty("webdriver.firefox.bin", "C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe");
于 2015-08-24T09:52:18.510 回答
-2

当 Firefox 缓存文件夹所在的磁盘上没有剩余空间时,也会出现同样的问题。只需释放空间并启动您的脚本!

于 2014-10-06T08:34:40.757 回答