Android

Dependencias

Los objetos binarios de ChromeDriver se pueden encontrar empaquetados como archivos ZIP para varios hosts. plataformas en la página de descargas.

Apps compatibles

ChromeDriver permite ejecutar pruebas en el navegador Chrome (versión 30 o superior) y Aplicaciones basadas en WebView a partir de Android 4.4 (KitKat) que habilitaron la depuración web y JavaScript. Puedes instalar la app de Chrome desde:

Estable: https://play.google.com/store/apps/details?id=com.android.chrome

Vinculaciones del lenguaje de Selenium WebDriver

Se deben instalar las vinculaciones de idiomas estándar de Selenium WebDriver en el lenguaje que elijas para escribir tus pruebas. Esta biblioteca está disponible en tu administrador de paquetes local amigable o en el proyecto selenium (https://www.seleniumhq.org/download/). Por ejemplo, las vinculaciones de lenguaje para Python se pueden instalar con pip.

$ pip install selenium

SDK de Android

El SDK se puede descargar desde developer.android.com/sdk/

Requisitos del dispositivo

A partir de la versión 33 de Chrome, ya no se necesita un dispositivo con permisos de administrador. Si ejecutas pruebas En versiones anteriores de Chrome, los dispositivos debían tener permisos de administrador como ChromeDriver. se requiere acceso de escritura al directorio /data/local para configurar el comando de Chrome argumentos de línea.

Ejecuta ChromeDriver

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

    $ adb start-server
    
  2. Si realizas pruebas en la app de Chrome antes de la versión 33, asegúrate de que el 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. Generalmente, se recomienda que inicies ChromeDriver a través de la biblioteca Selenium, aunque también puedes iniciarlo manualmente desde la línea de comandos. Consulta Primeros pasos para obtener más información.

    $ ./chromedriver
    

Opciones específicas de Android

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

  • androidPackage: Es el nombre del paquete de la app de Chrome o WebView.
  • androidDeviceSerial: Es el número de serie del dispositivo en el que se debe iniciar la app (opcional). Consulta la sección Varios dispositivos a continuación.
  • androidUseRunningApp (opcional): Conéctalo a una app que ya está en ejecución en lugar de iniciarla con un directorio de datos claro.

Las siguientes capacidades solo se aplican a apps WebView.

  • androidActivity: Nombre de la actividad que aloja WebView.
  • androidProcess: Es el nombre de proceso de la actividad que aloja WebView (opcional) (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 al 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

Si quieres usar un dispositivo en particular para una sesión, especifica androidDeviceSerial como el valor opción de Chrome.

Si no se especifica el número de serie, el servidor selecciona un dispositivo no utilizado en aleatoria para asociarla con cada sesión. Se muestra un error si todos los dispositivos ya tienen sesiones activas, por lo que las pruebas deben asegurarse de llamar al salir cuando finalizado.

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