Android

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

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

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