Подтвердить что ты не робот

Не удалось подключиться к двоичному файлу FirefoxBinary с Selenium в Maven

Я запускаю Селен-Тесты. Когда я запускаю их непосредственно из 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", например

4b9b3361

Ответ 1

Я понял, где проблема.

Я загрузил некоторые расширения, чтобы добавить в FirefoxProfile, который я использую, чтобы создать экземпляр FireFoxDriver. Эти плагины расположены в Java/main/resources. В Eclipse все работало нормально, но я не мог получить доступ к этим плагинам через Maven. После копирования этих файлов во временную папку и загрузки их оттуда он работал даже с Maven.

Спасибо за вашу помощь

Ответ 2

Когда я сталкиваюсь с этой ошибкой, это обычно одна из двух вещей.

Версия Selenium не поддерживает версию браузера Двойная проверка версий Selenium/browser одинакова при запуске от Eclipse vs Maven. Двойная проверка Eclipse и Maven настроены на использование той же версии Selenium. Это произошло для меня, когда мой браузер автоматически обновился, поэтому я отключил его в браузере.

Тесты Selenium работают в режиме без звука Маловероятно, если вы вручную выполнили mvn на той же машине, что и Eclipse. Это произошло для меня при запуске селена через Maven на моем сервере Jenkins. Сервер Jenkins работал в безголовом режиме. Потребовалось немного разобраться с безголовыми вещами, думаю, что я установил переменную env в env Linux или что-то в этом роде.

Ответ 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> 

Ответ 4

У нас была аналогичная проблема, появившаяся после обновлений Linux. Мы проверили множество комбинаций версий селена (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>

Интересно, только ли это решение скрывает реальную проблему?

Ответ 5

Если вы обновили Firefox и Selenium до последних версий, пытаясь исправить эту проблему, и вы по-прежнему сталкиваетесь с этой проблемой, возможно, вы обновили Firefox, используя "Перезапустить для обновления".

Завершите работу Firefox и убедитесь, что исполняемый файл Firefox больше не работает. Затем попробуйте свой тест. Теперь он должен работать.

Я предполагаю, что это связано с тем, когда именно обновляется бинарный файл Firefox, когда вы используете "Restart to Update"

Ответ 6

У меня была эта проблема с Firefox 36, также люди столкнулись с тем же в 35 и 44.

Чтобы сделать вывод, обновите свой Firefox до 37 или понизите его до менее чем 33.

Ответ 7

После долгого сражения и попыток большинства (если не всех) параметров, перечисленных здесь, я, наконец, избавился от этой ошибки, удалив неиспользуемый JAR - ios-server-0.6.5-jar-with-dependencies.jar в моем пути сборки и используя комбинацию FF34 и селеновые банки 2.48.2.

Просто хотел опубликовать это как еще один вариант, если кто-то столкнется с этой изнурительной проблемой.

Ответ 8

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 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

Ответ 9

Не удается найти путь firefoxbinary. Установите путь firefox до использования драйвера firefox.

System.setProperty("webdriver.firefox.bin", "C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe");

Ответ 10

Такая же проблема возникает и при отсутствии свободного места на диске, где находится папка кэша Firefox. Просто освободите место и запустите свои скрипты!