Android

종속 항목

ChromeDriver용 바이너리는 다운로드 페이지에서 다양한 호스트 플랫폼의 ZIP 파일로 패키징되어 있습니다.

지원되는 앱

ChromeDriver는 웹 디버깅JavaScript를 사용 설정한 Chrome 브라우저 (버전 30 이상) 및 Android 4.4 (KitKat) 이상의 WebView 기반 앱에서 테스트를 실행할 수 있도록 지원합니다. 다음 위치에서 Chrome 앱을 설치할 수 있습니다.

안정화 버전: https://play.google.com/store/apps/details?id=com.android.chrome

Selenium WebDriver 언어 바인딩

테스트 작성을 위해 선택한 언어에 표준 Selenium 프로젝트 WebDriver 언어 바인딩을 설치해야 합니다. 이 라이브러리는 친숙한 로컬 패키지 관리자 또는 selenium 프로젝트 (https://www.seleniumhq.org/download/)에서 사용할 수 있습니다. 예를 들어 Python용 언어 바인딩은 pip를 사용하여 설치할 수 있습니다.

$ pip install selenium

Android SDK

SDK는 developer.android.com/sdk/에서 다운로드할 수 있습니다.

기기 요구사항

Chrome 버전 33부터는 루팅된 기기가 더 이상 필요하지 않습니다. 더 낮은 버전의 Chrome에서 테스트를 실행하는 경우 Chrome의 명령줄 인수를 설정하려면 ChromeDriver가 /data/local 디렉터리에 관한 쓰기 액세스 권한을 필요로 하므로 기기를 루팅해야 했습니다.

ChromeDriver 실행

  1. Android SDK의 Android 디버그 브리지 (adb) 서버를 시작합니다.

    $ adb start-server
    
  2. 버전 33 이전의 Chrome 앱에서 테스트하는 경우, 다음과 같이 adb 셸에 기기의/data /local 디렉터리에 대한 읽기/쓰기 액세스 권한이 있는지 확인합니다.

     $ adb shell su -c chmod 777 /data/local
    
  3. 일반적으로 Selenium 라이브러리를 통해 ChromeDriver를 시작하는 것이 좋지만 명령줄에서 수동으로 시작할 수도 있습니다. 자세한 내용은 시작하기를 참조하세요.

    $ ./chromedriver
    

Android 관련 옵션

다음 Chrome 옵션은 Chrome 앱과 WebView 앱에 모두 적용할 수 있습니다.

  • androidPackage: Chrome 또는 WebView 앱의 패키지 이름입니다.
  • androidDeviceSerial: (선택사항) 앱을 실행할 기기의 일련번호입니다 (아래의 여러 기기 섹션 참고).
  • androidUseRunningApp: (선택사항) 지우기 데이터 디렉터리로 앱을 실행하는 대신 이미 실행 중인 앱에 연결합니다.

다음 기능은 WebView 앱에만 적용됩니다.

  • androidActivity: WebView를 호스팅하는 활동의 이름입니다.
  • androidProcess: (선택사항) WebView를 호스팅하는 활동의 프로세스 이름입니다 (ps에서 제공). 지정하지 않으면 프로세스 이름이 androidPackage과 동일한 것으로 간주됩니다.

테스트 실행

테스트는 androidPackage 옵션을 통해 앱의 패키지 이름을 ChromeDriver에 전달해야 합니다. 예를 들어, 최소 Python 테스트는 다음과 같습니다.

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()

여러 기기 지원

세션에 특정 기기를 사용하려면 androidDeviceSerial을 Chrome 옵션으로 지정합니다.

일련번호가 지정되지 않은 경우 서버는 각 세션과 연결할 미사용 기기를 무작위로 선택합니다. 모든 기기에 이미 활성 세션이 있는 경우 오류가 반환되므로 테스트가 완료되면 quit을 호출해야 합니다.

wd/hub에 연결

테스트에서 wd/hub에 연결될 것으로 예상되는 경우 서버를 시작할 때 --url-base=wd/hub를 추가할 수 있습니다.

$ ./chromedriver --url-base=wd/hub