I binari più recenti per ChromeDriver vengono pacchettizzati come file ZIP per varie piattaforme host.
Le versioni precedenti di ChromeDriver sono disponibili in Download.
App supportate
ChromeDriver supporta l'esecuzione di test sul browser Chrome (versione 30 e successive) e su 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
Binding delle lingue di Selenium WebDriver
Per scrivere i test, devono essere installate le associazioni di lingua WebDriver del progetto Selenium standard per la lingua che preferisci. Questa libreria è disponibile nel tuo gestore dei pacchetti locale o nel progetto Selenium.
Ad esempio, le associazioni di linguaggi 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 è necessario un dispositivo con root. Se esegui test su versioni precedenti di Chrome, i dispositivi devono essere sottoposti a rooting perché ChromeDriver richiede l'accesso in scrittura alla directory /data/local
per impostare gli argomenti della riga di comando di Chrome.
Esegui ChromeDriver
Avvia il server Android Debug Bridge (adb) dell'SDK Android:
$ adb start-server
Se esegui il test sull'app Chrome precedente alla versione 33, assicurati che adb shell abbia accesso in lettura e scrittura alla directory
/data/local
sul dispositivo:$ adb shell su -c chmod 777 /data/local
Ti consigliamo di avviare ChromeDriver tramite la libreria Selenium, anche se puoi avviarlo manualmente anche dalla riga di comando.
$ ./chromedriver
Opzioni solo per Android
Le seguenti opzioni di Chrome sono applicabili sia alle app Chrome che a 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 Dispositivi multipli di seguito).androidUseRunningApp
: (Facoltativo) Esegui il collegamento a un'app già in esecuzione anziché avviarla con una directory di dati vuota.
Le seguenti funzionalità sono applicabili solo alle app WebView.
- androidActivity: il nome dell'attività che ospita WebView.
- androidProcess: (Facoltativo) nome del processo dell'attività che ospita WebView (come indicato da ps). Se non specificato, si presume che il nome del processo sia uguale a
androidPackage
.
Esegui un test
I test devono 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 determinato dispositivo per una sessione, specifica androidDeviceSerial
come opzione di Chrome.
Se il numero di serie non è specificato, il server seleziona un dispositivo inutilizzato in modo casuale da associare a ogni sessione. Viene restituito un errore se tutti i dispositivi hanno già sessioni attive, quindi i test devono assicurarsi di chiamare quit al termine.
Collegati a wd/hub
Se i test prevedono di connettersi a wd/hub
, puoi aggiungere --url-base=wd/hub
al momento del lancio del server:
$ ./chromedriver --url-base=wd/hub