최신 ChromeDriver용 바이너리는 다양한 호스트 플랫폼용 zip 파일로 패키징됩니다.
이전 버전의 ChromeDriver는 다운로드에서 확인할 수 있습니다.
지원되는 앱
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 프로젝트에서 사용할 수 있습니다.
예를 들어 Python의 언어 바인딩은 pip를 사용하여 설치할 수 있습니다.
$ pip install selenium
Android SDK
SDK는 developer.android.com/sdk/에서 다운로드할 수 있습니다.
기기 요구사항
Chrome 버전 33부터 루팅된 기기가 필요하지 않습니다. 이전 버전의 Chrome에서 테스트를 실행하는 경우 ChromeDriver가 Chrome의 명령줄 인수를 설정하려면 /data/local
디렉터리에 대한 쓰기 액세스 권한이 필요하므로 기기를 루팅해야 합니다.
ChromeDriver 실행
Android SDK의 Android 디버그 브리지 (adb) 서버를 시작합니다.
$ adb start-server
버전 33 이전의 Chrome 앱에서 테스트하는 경우 adb 셸에 기기의
/data/local
디렉터리에 대한 읽기 및 쓰기 액세스 권한이 있는지 확인합니다.$ adb shell su -c chmod 777 /data/local
Selenium 라이브러리를 통해 ChromeDriver를 시작하는 것이 좋지만 명령줄에서 수동으로 시작할 수도 있습니다.
$ ./chromedriver
Android 전용 옵션
다음 Chrome 옵션은 Chrome 및 WebView 앱 모두에 적용됩니다.
androidPackage
: Chrome 또는 WebView 앱의 패키지 이름입니다.androidDeviceSerial
: (선택사항) 앱을 실행할 기기 일련번호입니다 (아래의 여러 기기 섹션 참고).androidUseRunningApp
: (선택사항) 데이터 디렉터리가 지워진 상태로 앱을 실행하는 대신 이미 실행 중인 앱에 연결합니다.
다음 기능은 WebView 앱에만 적용됩니다.
- androidActivity: WebView를 호스팅하는 Activity의 이름입니다.
- androidProcess: (선택사항) WebView를 호스팅하는 Activity의 프로세스 이름 (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