Android

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

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

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