Excepción al ejecutar Selenium en la instancia AWS EC2

Excepción al ejecutar Selenium en la instancia AWS EC2

Me enfrento a esta excepción cuando ejecuto un caso de prueba de Selenium utilizando el controlador de Firefox en la instancia AWS EC2, que es el servidor sin cabeza. Instalé Firefox y todos los cambios necesarios para ello.

org.openqa.selenium.WebDriverException: org.openqa.selenium.WebDriverException: no se pudo conectar al binario FirefoxBinary(/opt/firefox/firefox-bin) en el puerto 7055; La salida del proceso es la siguiente: �*** e = [Excepción... "El componente devolvió el código de error: 0x80570016 (NS_ERROR_XPC_GS_RETURNED_FAILURE) [nsIJSCID.getService]" nsresult: "0x80570016 (NS_ERROR_XPC_GS_RETURNED_FAILURE)" ubicación: "JS frame :: chrome: //browser/content/utilityOverlay.js :: getShellService :: línea 339" datos: no]

¿Alguien puede ayudarme con esta excepción?

Respuesta1

Primero instale xvfb que le permitirá ejecutarlo con una "pantalla virtual".

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

Entonces deberías consultar esta útil publicación que te ayudará a instalar Firefox en Amazon EC2. Esto se debe a que no puedes simplemente hacer sudo yum install firefox en EC2. Entonces, básicamente creas un archivo (yo usé esteesencia) en la instancia EC2 que proporciona y luego ejecútela para instalar Firefox y todas sus dependencias. http://joekiller.com/2012/06/03/install-firefox-on-amazon-linux-x86_64-compiling-gtk/

Cuando se ejecute el script, instalará Firefox en

/usr/local/bin/firefox

por defecto creo.

Una vez que se haya instalado, probablemente necesite agregarlo a su ruta, como también se explica en el enlace anterior. Pero también debes agregar la variable de sistema DISPLAY, así que haz algo como esto...

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

Luego debe iniciar xvfb para la pantalla 99 para que pueda ejecutar Firefox en su "pantalla virtual". Al igual que...

Xvfb :99 -screen 0 1024x768x16 &

Luego, con suerte, cuando vuelva a ejecutar sus pruebas de selenio, encontrará Firefox en la ruta y lo ejecutará en la pantalla "virtualizada" correcta en esa instancia EC2.

Como nota al margen, de ninguna manera soy un experto de ningún tipo en Amazon Linux, así que... Buena suerte.

Alternativamente, puede investigar la ejecución en un servidor Selenium, que puede iniciar en una microinstancia de Amazon EC2 Ubuntu, que puede configurar fácilmente para que tenga una GUI.

Respuesta2

No se pudo conectar al binario FirefoxBinary(/opt/firefox/firefox-bin) en el puerto 7055

Necesita actualizar su servidor Selenium (a 2.53.x), para que pueda admitir su versión más reciente de Firefox. Como alternativa, utilice otro controlador web (como Chrome).

Si está utilizando Maven, estas son las líneas que debe usar pom.xml:

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

Ver:

información relacionada