Я сталкиваюсь с этим исключением, когда запускаю тестовый случай Selenium с использованием драйвера Firefox на экземпляре AWS EC2, который является headless-сервером. Я установил Firefox и все необходимые изменения для него
org.openqa.selenium.WebDriverException: org.openqa.selenium.WebDriverException: Не удалось подключиться к двоичному файлу FirefoxBinary(/opt/firefox/firefox-bin) на порту 7055; вывод процесса следующий: �*** e = [Exception... "Компонент вернул код ошибки: 0x80570016 (NS_ERROR_XPC_GS_RETURNED_FAILURE) [nsIJSCID.getService]" nsresult: "0x80570016 (NS_ERROR_XPC_GS_RETURNED_FAILURE)" location: "JS frame :: chrome://browser/content/utilityOverlay.js :: getShellService :: line 339" data: no]
Пожалуйста, кто-нибудь может мне помочь с этим исключением?
решение1
Сначала установите xvfb, что позволит вам запустить его с «виртуальным экраном».
sudo yum -y install xorg-x11-server-Xvfb
Тогда вам стоит ознакомиться с этим полезным постом, который поможет вам установить Firefox на Amazon EC2. Это потому, что вы не можете просто сделать sudo yum install firefox на EC2. Итак, по сути, вы создаете файл (я использовал этотсуть) на предоставленном им экземпляре EC2, а затем запустить его для установки Firefox и всех его зависимостей. http://joekiller.com/2012/06/03/install-firefox-on-amazon-linux-x86_64-compiling-gtk/
После запуска скрипта он установит Firefox в
/usr/local/bin/firefox
по умолчанию я так считаю.
После установки вам, вероятно, нужно будет добавить его в свой путь, как также объясняется в ссылке выше. Но вам также следует добавить системную переменную DISPLAY, поэтому сделайте что-то вроде этого...
cat << EOF >> ~/.bashrc
PATH=/usr/local/bin:\$PATH
DISPLAY=:99
export PATH
export DISPLAY
EOF
Затем вам нужно запустить xvfb для экрана 99, чтобы он мог запустить Firefox на своем "виртуальном экране". Вот так...
Xvfb :99 -screen 0 1024x768x16 &
Затем, когда вы снова запустите тесты Selenium, он, надеюсь, найдет Firefox в пути и запустит его на правильном «виртуализированном» экране на этом экземпляре EC2.
Кстати, я ни в коем случае не являюсь экспертом в Amazon Linux, так что... Удачи.
В качестве альтернативы вы можете изучить возможность запуска на сервере Selenium, который можно запустить на микроэкземпляре Amazon EC2 Ubuntu, который можно легко настроить для использования графического интерфейса.
решение2
Не удалось подключиться к бинарному FirefoxBinary(/opt/firefox/firefox-bin) через порт 7055
Вам необходимо обновить Selenium Server (до 2.53.x), чтобы он мог поддерживать вашу новую версию Firefox. В качестве альтернативы используйте другой веб-драйвер (например, Chrome).
Если вы используете Maven, вот строки, которые нужно использовать pom.xml
:
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>2.53.1</version>
<scope>test</scope>
</dependency>
Видеть: