Android

Dipendenze

I file binari per ChromeDriver sono pacchettizzati come file ZIP per vari host piattaforme nella pagina dei download.

App supportate

ChromeDriver supporta l'esecuzione di test sul browser Chrome (versione 30 e successive) e App basate su WebView a partire da Android 4.4 (KitKat) in cui sono stati attivati il debug web e JavaScript. Puoi installare l'app Chrome da:

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

Associazioni linguistiche Selenium WebDriver

Le associazioni di lingue del progetto Selenium WebDriver devono essere installate nella lingua che preferisci per la scrittura dei test. Questa libreria è disponibile tramite il tuo intuitivo gestore di pacchetti locale o tramite il progetto Selenium (https://www.seleniumhq.org/download/). Ad esempio, le associazioni di linguaggio per Python possono essere installate con pip.

$ pip install selenium

SDK per Android

L'SDK può essere scaricato da developer.android.com/sdk/

Requisiti del dispositivo

A partire dalla versione 33 di Chrome, non è più necessario un dispositivo rooted. Se esegui test nelle versioni precedenti di Chrome, i dispositivi dovevano essere rooted come ChromeDriver necessario accesso in scrittura alla directory /data/local per impostare il comando di Chrome di riga di comando.

Esegui ChromeDriver

  1. Avvia il server Android Debug Bridge (adb) dell'SDK Android:

    $ adb start-server
    
  2. Se esegui test sull'app di Chrome prima della versione 33, assicurati che la shell adb abbia accesso in lettura/scrittura alla directory /data/local sul dispositivo:

     $ adb shell su -c chmod 777 /data/local
    
  3. In genere è consigliabile avviare ChromeDriver tramite la libreria Selenium, ma puoi anche avviarlo manualmente dalla riga di comando. Per ulteriori informazioni, consulta la sezione Introduzione.

    $ ./chromedriver
    

Opzioni specifiche per Android

Le seguenti opzioni di Chrome sono valide per le app Chrome e WebView:

  • androidPackage: il nome del pacchetto dell'app Chrome o WebView.
  • androidDeviceSerial: (facoltativo) il numero di serie del dispositivo su cui avviare l'app (vedi la sezione Più dispositivi di seguito).
  • androidUseRunningApp (Facoltativo) Collega l'app a un'app già in esecuzione anziché avviarla con una directory di dati trasparente.

Le seguenti funzionalità sono applicabili solo alle app WebView.

  • androidActivity: nome dell'attività che ospita WebView.
  • androidProcess: (facoltativo) il nome del processo dell'attività che ospita il componente WebView (come fornito da ps). Se non viene specificato, si presume che il nome del processo sia lo stesso di androidPackage.

Esegui un test

I test devono trasmettere il nome del pacchetto dell'app al ChromeDriver tramite l'opzione androidPackage. Ad esempio, un test Python minimo è simile al seguente:

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()

Più dispositivi

Per utilizzare un determinato dispositivo per una sessione, specifica androidDeviceSerial come Opzione di Chrome.

Se il numero di serie non è specificato, il server seleziona un dispositivo inutilizzato all'indirizzo casuale da associare a ogni sessione. Viene restituito un errore se tutti i dispositivi hanno già sessioni attive, quindi i test devono essere sicuri di chiudere quando completato.

Collegati a wd/hub

Se i test prevedono di connettersi a wd/hub, puoi aggiungere --url-base=wd/hub quando avvii il server:

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