Exceção ao executar o Selenium na instância AWS EC2

Exceção ao executar o Selenium na instância AWS EC2

Estou enfrentando essa exceção quando executo um caso de teste Selenium usando o driver Firefox na instância AWS EC2, que é o servidor headless. Instalei o Firefox e todas as alterações necessárias para ele

org.openqa.selenium.WebDriverException: org.openqa.selenium.WebDriverException: Falha ao conectar ao binário FirefoxBinary(/opt/firefox/firefox-bin) na porta 7055; a saída do processo é a seguinte: �*** e = [Exceção... "Componente retornou código de falha: 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 :: linha 339" dados: não]

Por favor, alguém pode me ajudar com esta exceção?

Responder1

Primeiro instale o xvfb, que permitirá executá-lo com uma "tela virtual".

sudo yum -y install xorg-x11-server-Xvfb 

Então você deve verificar esta postagem útil que o ajudará a instalar o Firefox no Amazon EC2. Isso ocorre porque você não pode simplesmente fazer sudo yum install firefox no EC2. Então, basicamente você cria um arquivo (eu usei esteessência) na instância do EC2 que ele fornece e execute-o para instalar o Firefox e todas as suas dependências. http://joekiller.com/2012/06/03/install-firefox-on-amazon-linux-x86_64-compiling-gtk/

Quando o script for executado, ele instalará o Firefox em

/usr/local/bin/firefox

por padrão, eu acredito.

Depois de instalado, você provavelmente precisará adicioná-lo ao seu caminho, conforme o link acima também explica. Mas você também deve adicionar a variável de sistema DISPLAY, então faça algo assim...

cat << EOF >> ~/.bashrc
PATH=/usr/local/bin:\$PATH
DISPLAY=:99
export PATH
export DISPLAY
EOF

Então você tem que iniciar o xvfb para a tela 99 para que ele possa rodar o Firefox em sua "tela virtual". Igual a...

Xvfb :99 -screen 0 1024x768x16 &

Então, esperançosamente, quando você executar novamente os testes do Selenium, ele encontrará o Firefox no caminho e o executará na tela "virtualizada" correta naquela instância do EC2.

Como observação lateral - não sou de forma alguma um especialista de qualquer tipo em Amazon Linux, então... Boa sorte.

Como alternativa, você pode investigar a execução no servidor Selenium, que pode ser iniciado em uma microinstância do Amazon EC2 ubuntu, que pode ser facilmente configurada para ter uma GUI.

Responder2

Falha ao conectar-se ao binário FirefoxBinary(/opt/firefox/firefox-bin) na porta 7055

Você precisa atualizar seu servidor Selenium (para 2.53.x), para que ele possa suportar sua versão mais recente do Firefox. Como alternativa, use outro webdriver (como o Chrome).

Se você estiver usando o Maven, aqui estão as linhas para usar pom.xml:

<dependency>
  <groupId>org.seleniumhq.selenium</groupId>
  <artifactId>selenium-java</artifactId>
  <version>2.53.1</version>
  <scope>test</scope>
</dependency>

Ver:

informação relacionada