Android

Los binarios más recientes de ChromeDriver se empaquetan como archivos ZIP para varias plataformas de host.

Puedes encontrar versiones anteriores de ChromeDriver en Descargas.

Apps compatibles

ChromeDriver admite la ejecución de pruebas en el navegador Chrome (versión 30 y versiones posteriores) y en apps basadas en WebView a partir de Android 4.4 (KitKat) que hayan habilitado la depuración web y JavaScript.

Puedes instalar la app de Chrome desde los siguientes lugares:

Versión estable: https://play.google.com/store/apps/details?id=com.android.chrome

Vinculaciones de lenguajes de Selenium WebDriver

Se deben instalar las vinculaciones de idioma WebDriver del proyecto Selenium estándar para que el idioma que elijas escriba tus pruebas. Esta biblioteca está disponible en tu administrador de paquetes local o en el proyecto Selenium.

Por ejemplo, las vinculaciones de lenguaje para Python se pueden instalar con pip.

$ pip install selenium

SDK de Android

Puedes descargar el SDK desde developer.android.com/sdk/.

Requisitos del dispositivo

A partir de la versión 33 de Chrome, no se requiere un dispositivo con permisos de administrador. Si se ejecutan pruebas en versiones anteriores de Chrome, los dispositivos deben tener permisos de administrador, ya que ChromeDriver requiere acceso de escritura al directorio /data/local para establecer los argumentos de línea de comandos de Chrome.

Ejecuta ChromeDriver

  1. Inicia el servidor Android Debug Bridge (adb) del SDK de Android:

    $ adb start-server
    
  2. Si realizas pruebas en la app de Chrome anterior a la versión 33, asegúrate de que la shell de adb tenga acceso de lectura y escritura al directorio /data/local en el dispositivo:

    $ adb shell su -c chmod 777 /data/local
    
  3. Te recomendamos que inicies ChromeDriver a través de la biblioteca de Selenium, aunque también puedes iniciarlo de forma manual desde la línea de comandos.

    $ ./chromedriver
    

Opciones solo para Android

Las siguientes opciones de Chrome se aplican a las apps de Chrome y WebView:

  • androidPackage: Es el nombre del paquete de la app de Chrome o WebView.
  • androidDeviceSerial: (Opcional) Es el número de serie del dispositivo en el que se iniciará la app (consulta la sección Varios dispositivos a continuación).
  • androidUseRunningApp: (Opcional) Se conecta a una app que ya se está ejecutando en lugar de iniciarla con un directorio de datos claro.

Las siguientes funciones solo se aplican a las apps de WebView.

  • androidActivity: Es el nombre de la actividad que aloja el WebView.
  • androidProcess: (Opcional) Es el nombre del proceso de la actividad que aloja el WebView (como lo indica ps). Si no se proporciona, se supone que el nombre del proceso es el mismo que androidPackage.

Ejecutar una prueba

Las pruebas deben pasar el nombre del paquete de la app a ChromeDriver a través de la opción androidPackage. Por ejemplo, una prueba mínima de Python se ve de la siguiente manera:

from selenium import webdriver
options = webdriver.ChromeOptions()
options.add_experimental_option('androidPackage', 'com.android.chrome')
driver = webdriver.Chrome('./chromedriver', options=options)
driver.get('https://google.com')
driver.quit()

Varios dispositivos

Para usar un dispositivo en particular para una sesión, especifica androidDeviceSerial como una opción de Chrome.

Si no se especifica el número de serie, el servidor selecciona un dispositivo sin usar de forma aleatoria para asociarlo con cada sesión. Se muestra un error si todos los dispositivos already tienen sesiones activas, por lo que las pruebas deben asegurarse de llamar a quit cuando finish.

Conectarse a wd/hub

Si tus pruebas esperan conectarse a wd/hub, puedes agregar --url-base=wd/hub cuando inicies el servidor:

$ ./chromedriver --url-base=wd/hub