Dependências
Binários do ChromeDriver podem ser encontrados em pacotes como arquivos zip para vários hosts plataformas na página de downloads.
Apps com suporte
O ChromeDriver oferece suporte à execução de testes no navegador Chrome (versão 30 ou superior) e Apps baseados em WebView a partir do Android 4.4 (KitKat) com 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 do WebDriver do projeto padrão do Selenium precisam ser instaladas na linguagem de sua escolha para programar testes. Essa biblioteca está disponível no seu gerenciador de pacotes local compatível ou no projeto Selenium (https://www.seleniumhq.org/download/). Por exemplo, as vinculações de linguagem do Python podem ser instaladas com pip.
$ pip install selenium
SDK do Android
O download do SDK pode ser feito em developer.android.com/sdk/
Requisitos do dispositivo
A partir do Chrome 33, não será mais necessário ter um dispositivo com acesso root. Se estiver executando testes
em versões anteriores do Chrome, os dispositivos precisavam ter acesso root como ChromeDriver
exigia acesso de gravação ao diretório /data/local
para definir o comando do Chrome
de linha de comando.
Executar o ChromeDriver
Inicie o servidor do Android Debug Bridge (adb) do SDK do Android:
$ adb start-server
Se estiver testando em um app do Chrome anterior à versão 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, embora você também possa 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): anexar a um app já em execução em vez de iniciar o app com um diretório de dados limpo.
Os recursos a seguir são aplicáveis apenas a apps WebView.
- androidActivity: nome da atividade que hospeda a WebView.
- androidProcess: (opcional) nome do processo da atividade que hospeda o WebView (conforme fornecido por ps). Se não for informado, o nome do processo será 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 de Python é assim:
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
Chrome.
Se o número de série não for especificado, o servidor selecionará um dispositivo não usado em aleatórios para associar a cada sessão. Um erro será retornado se todos os dispositivos já têm sessões ativas. Por isso, os testes devem ser encerrados quando concluído.
Conectar com wd/hub
Caso seus testes precisem se conectar a wd/hub
, adicione --url-base=wd/hub
ao iniciar o servidor:
$ ./chromedriver --url-base=wd/hub