Android

Dipendenze

I file binari per ChromeDriver sono disponibili in pacchetti come file ZIP per varie piattaforme host nella pagina dei download.

App supportate

ChromeDriver supporta l'esecuzione di test sul browser Chrome (versione 30 e successive) e sulle app basate su WebView a partire da Android 4.4 (Lollipop) per le quali sono attivi 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

Per scrivere i test, devi installare le associazioni di lingue WebDriver standard del progetto selenio per la tua lingua preferita. Questa libreria è reperibile presso il tuo gestore di pacchetti locale o nel progetto selenium (https://www.seleniumhq.org/download/). Ad esempio, le associazioni di linguaggi per Python possono essere installate con pip.

$ pip install selenium

SDK Android

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

Requisiti del dispositivo

A partire dalla versione 33 di Chrome, non è più necessario un dispositivo rooted. Se si eseguono test su versioni precedenti di Chrome, i dispositivi dovevano essere rooted poiché ChromeDriver richiedeva l'accesso in scrittura alla directory /data/local per impostare gli argomenti della riga di comando di Chrome.

Esegui ChromeDriver

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

    $ adb start-server
    
  2. Se esegui test sull'app di Chrome precedenti alla 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 Guida introduttiva.

    $ ./chromedriver
    

Opzioni specifiche per Android

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

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

Le seguenti funzionalità si applicano solo alle app WebView.

  • androidActivity: nome dell'attività che ospita il componente WebView.
  • androidProcess: (facoltativo) nome della procedura che ospita l'attività che ospita WebView (come indicato da ps). Se non viene specificato, si presume che il nome del processo sia uguale a androidPackage.

Esegui un test

I test dovrebbero passare il nome del pacchetto dell'app a ChromeDriver tramite l'opzione androidPackage. Ad esempio, un test Python minimo ha il seguente aspetto:

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 dispositivo specifico per una sessione, specifica androidDeviceSerial come opzione di Chrome.

Se il numero di serie non è specificato, il server seleziona a caso un dispositivo inutilizzato da associare a ogni sessione. Viene restituito un errore se tutti i dispositivi hanno già sessioni attive, quindi i test devono assicurarsi di terminare la chiamata al termine.

Collegati a wd/hub

Se i test prevedono di connettersi a wd/hub, puoi aggiungere --url-base=wd/hub all'avvio del server:

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