Android

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

  1. Inicie o servidor do Android Debug Bridge (adb) do SDK do Android:

    $ adb start-server
    
  2. 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
    
  3. 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