Не удалось подключиться к двоичному файлу 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", например
Ответы
Ответ 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. Просто освободите место и запустите свои скрипты!