Os binários mais recentes do ChromeDriver são empacotados como arquivos ZIP para várias plataformas de host.
Versões anteriores do ChromeDriver podem ser encontradas em Downloads.
Apps com suporte
O ChromeDriver oferece suporte à execução de testes no navegador Chrome (versão 30 ou mais recente) e em apps baseados na WebView a partir do Android 4.4 (KitKat) que ativaram a depuração da Web e o JavaScript.
É possível instalar o app Chrome em:
Versão estável: https://play.google.com/store/apps/details?id=com.android.chrome
Vinculações de linguagem do Selenium WebDriver
As vinculações de linguagem do WebDriver do projeto padrão do Selenium precisam ser instaladas para que você possa escrever seus testes no idioma escolhido. Essa biblioteca está disponível no gerenciador de pacotes local ou no projeto Selenium.
Por exemplo, as vinculações de linguagem para Python podem ser instaladas com o pip.
$ pip install selenium
SDK do Android
O SDK pode ser baixado em developer.android.com/sdk/.
Requisitos do dispositivo
A partir da versão 33 do Chrome, não é necessário ter um dispositivo com acesso root. Se estiver executando testes
em versões anteriores do Chrome, os dispositivos precisam ter acesso de gravação ao diretório /data/local
, porque o ChromeDriver
precisa desse acesso para definir os argumentos de linha de comando
do Chrome.
Executar o ChromeDriver
Inicie o servidor do Android Debug Bridge (adb) do SDK do Android:
$ adb start-server
Se você estiver testando no app Chrome anterior à versão 33, verifique se o adb shell tem acesso de leitura e gravação ao diretório
/data/local
no dispositivo:$ adb shell su -c chmod 777 /data/local
Recomendamos que você inicie o ChromeDriver pela biblioteca Selenium, mas também é possível iniciá-lo manualmente na linha de comando.
$ ./chromedriver
Opções somente para Android
As seguintes opções do Chrome são aplicáveis aos apps do Chrome e da WebView:
androidPackage
: o nome do pacote do app Chrome ou WebView.androidDeviceSerial
: (opcional) o número de série do dispositivo em que o app será iniciado (consulte a seção "Vários dispositivos" abaixo).androidUseRunningApp
: (opcional) anexar a um app que já está em execução em vez de iniciar o app com um diretório de dados claro.
Os recursos a seguir são aplicáveis apenas a apps da WebView.
- androidActivity: nome da atividade que hospeda a WebView.
- androidProcess: (opcional) nome do processo da atividade que hospeda a WebView (fornecido por ps). Se não for fornecido, o nome do processo será considerado o mesmo que
androidPackage
.
Executar um teste
Os testes precisam transmitir o nome do pacote do app ao ChromeDriver usando a
opção androidPackage
. Por exemplo, um teste mínimo do Python tem esta aparência:
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()
Vários dispositivos
Para usar um dispositivo específico em uma sessão, especifique androidDeviceSerial
como uma
opção do Chrome.
Se o número de série não for especificado, o servidor vai selecionar um dispositivo não utilizado aleatoriamente para associar a cada sessão. Um erro será retornado se todos os dispositivos já tiverem sessões ativas. Portanto, os testes precisam chamar o método de encerramento quando terminarem.
Conectar com wd/hub
Se os testes esperam se conectar a wd/hub
, adicione --url-base=wd/hub
ao iniciar o servidor:
$ ./chromedriver --url-base=wd/hub