Android

종속 항목

ChromeDriver용 바이너리는 다양한 호스트에 대한 ZIP 파일로 패키징되어 있습니다. 다운로드 페이지에서 플랫폼에 대한 자세한 내용을 참조하세요.

지원되는 앱

ChromeDriver는 Chrome 브라우저 (버전 30 이상)에서의 테스트 실행을 지원하며 웹 디버깅JavaScript를 사용 설정한 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에서 기기를 ChromeDriver로 루팅해야 했습니다. Chrome 명령어를 설정하려면 /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 옵션

일련번호가 지정되지 않은 경우 서버는 다음 위치에서 사용되지 않은 기기를 선택합니다. 각 세션과 연결되도록 합니다. 모든 기기가 이미 활성 세션이 있으므로 테스트 시 있습니다.

wd/hub에 연결

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

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