Dependências
Os binários do ChromeDriver podem ser encontrados empacotados como arquivos ZIP para várias plataformas de host na página de 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 em WebView a partir do Android 4.4 (KitKat) que têm a depuração da Web e o JavaScript ativados. Você pode instalar o app Chrome a partir de:
Estável: https://play.google.com/store/apps/details?id=com.android.chrome
Vinculações de linguagem do Selenium WebDriver
As vinculações de idioma padrão do projeto selenium do WebDriver precisam ser instaladas na linguagem que você escolher para programar seus testes. Essa biblioteca está disponível no seu gerenciador de pacotes local amigável ou no projeto selenium (https://www.seleniumhq.org/download/). Por exemplo, as vinculações de linguagem para Python podem ser instaladas com pip.
$ pip install selenium
SDK do Android
Faça o download do SDK em developer.android.com/sdk/.
Requisitos do dispositivo
A partir da versão 33 do Chrome, não será mais necessário ter um dispositivo com acesso root. Se os testes fossem executados
em versões anteriores do Chrome, os dispositivos precisavam ter acesso root, porque o ChromeDriver
exigia acesso de gravação ao diretório /data/local
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 estiver testando no app Chrome em uma versão anterior à 33, verifique se o shell do adb tem acesso de leitura/gravação ao diretório /data/local no dispositivo:
$ adb shell su -c chmod 777 /data/local
Geralmente, é recomendável iniciar o ChromeDriver pela biblioteca Selenium, mas também é possível iniciá-lo manualmente na linha de comando. Consulte Como começar para mais informações.
$ ./chromedriver
Opções específicas do Android
As seguintes opções do Chrome são aplicáveis aos apps do Chrome e do 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): anexe a um app já em execução em vez de iniciá-lo com um diretório de dados limpo.
Os seguintes recursos são válidos apenas para apps de WebView.
- androidActivity: nome da atividade que hospeda o WebView.
- androidProcess: (opcional) nome do processo da atividade que hospeda o WebView (conforme fornecido pela ps). Se não for informado, o nome do processo será o mesmo de
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 a seguinte 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 selecionará aleatoriamente um dispositivo não usado 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 saída quando forem concluídos.
Conectar com wd/hub
Se os testes esperam se conectar ao wd/hub
, adicione --url-base=wd/hub
ao iniciar o servidor:
$ ./chromedriver --url-base=wd/hub