기능은 ChromeDriver 세션을 맞춤설정하고 구성하는 데 사용할 수 있는 옵션입니다. 이 페이지에서는 ChromeDriver에서 지원하는 모든 기능과 사용 방법을 설명합니다.
WebDriver 언어 API는 ChromeDriver에 기능을 전달하는 방법을 제공합니다. 정확한 메커니즘은 언어마다 다르지만 대부분의 언어는 다음 메커니즘 중 하나 또는 둘 다를 사용합니다.
ChromeOptions
클래스를 사용합니다. 이는 Java, Python 등에서 지원됩니다.DesiredCapabilities
클래스를 사용합니다. 이는 Python, Ruby 등에서 지원됩니다. 자바에서도 사용할 수 있지만 자바에서의 사용은 지원 중단되었습니다.
ChromeOptions 클래스 사용
ChromeDriver 관련 기능을 설정하는 편리한 메서드가 있는 ChromeOptions
인스턴스를 만들 수 있습니다. 그런 다음 ChromeOptions
객체를 ChromeDriver 생성자에 전달할 수 있습니다.
ChromeOptions options = new ChromeOptions();
options.addExtensions(new File("/path/to/extension.crx"));
ChromeDriver driver = new ChromeDriver(options);
Selenium 버전 3.6.0부터 Java의 ChromeOptions
클래스도 Capabilities
인터페이스를 구현하므로 ChromeDriver와 관련되지 않은 다른 WebDriver 기능을 지정할 수 있습니다.
ChromeOptions options = new ChromeOptions();
// Add the WebDriver proxy capability.
Proxy proxy = new Proxy();
proxy.setHttpProxy("myhttpproxy:3337");
options.setCapability("proxy", proxy);
// Add a ChromeDriver-specific capability.
options.addExtensions(new File("/path/to/extension.crx"));
ChromeDriver driver = new ChromeDriver(options);
DesiredCapabilities 사용
DesiredCapabilities
를 사용하려면 기능 이름과 기능에 필요한 값 유형을 알아야 합니다. 전체 목록은 여기에서 확인하세요.
Python
caps = webdriver.DesiredCapabilities.CHROME.copy()
caps['acceptInsecureCerts'] = True
driver = webdriver.Chrome(desired_capabilities=caps)
Ruby
caps = Selenium::WebDriver::Remote::Capabilities.chrome(
"goog:chromeOptions" => {"args" => [ "window-size=1000,800" ]})
driver = Selenium::WebDriver.for :chrome, desired_capabilities: caps
일반적인 사용 사례
맞춤 프로필 (사용자 데이터 디렉터리라고도 함) 사용
기본적으로 ChromeDriver는 각 세션에 대해 새 임시 프로필을 만듭니다. 경우에 따라 특별한 환경설정을 지정하거나 맞춤 프로필을 모두 사용해야 할 수 있습니다. Chrome을 사용하는 경우 'chrome.prefs' 기능 (아래에서 설명)을 사용하여 Chrome 시작 후 적용할 환경설정을 지정할 수 있습니다. 후자의 경우 user-data-dir
Chrome 명령줄 스위치를 사용하여 사용할 프로필을 Chrome에 알릴 수 있습니다.
ChromeOptions options = new ChromeOptions();
options.addArguments("user-data-dir=/path/to/your/custom/profile");
user-data-dir
스위치를 새 디렉터리로 설정한 상태에서 명령줄 또는 ChromeDriver를 통해 Chrome을 실행하기만 하면 맞춤 프로필을 만들 수 있습니다. 경로가 없으면 Chrome에서 지정된 위치에 새 프로필을 만듭니다. 그런 다음 원하는 대로 프로필 설정을 수정하면 ChromeDriver에서 나중에 프로필을 사용할 수 있습니다. 브라우저에서 chrome://version을 열어 Chrome에서 사용 중인 프로필을 확인하세요.
Chrome을 최대화 상태로 시작
ChromeOptions options = new ChromeOptions();
options.addArguments("start-maximized");
비표준 위치에서 Chrome 실행 파일 사용
ChromeOptions options = new ChromeOptions();
options.setBinary("/path/to/other/chrome/binary");
대화상자 창 차단하기
기본적으로 ChromeDriver는 팝업 창을 허용하도록 Chrome을 구성합니다. 팝업을 차단하려면 (예: ChromeDriver에 의해 제어되지 않는 경우 일반 Chrome 동작 복원) 다음 단계를 따르세요.
ChromeOptions options = new ChromeOptions();
options.setExperimentalOption("excludeSwitches",
Arrays.asList("disable-popup-blocking"));
다운로드 디렉터리 설정
다음 코드는 특정 디렉터리에 파일을 다운로드하도록 Chrome을 구성하는 데 사용할 수 있습니다. 하지만 다음과 같은 몇 가지 주의사항이 있습니다.
- Chrome에서는 특정 디렉터리 사용을 허용하지 않습니다. 특히 데스크톱 폴더는 다운로드 디렉터리로 사용할 수 없습니다. Linux에서는 홈 디렉터리를 사용하여 다운로드할 수도 없습니다. 금지된 디렉터리의 정확한 목록은 변경될 수 있으므로 시스템에 특별한 의미가 없는 디렉터리를 사용하는 것이 좋습니다.
- ChromeDriver가 다운로드가 완료될 때까지 자동으로 기다리지 않습니다. drive.quit()을 너무 빨리 호출하면 다운로드가 완료되기 전에 Chrome이 종료될 수 있습니다.
- 상대 경로가 항상 작동하지는 않습니다. 최상의 결과를 얻으려면 대신 전체 경로를 사용하세요.
- Windows에서는 경로 구분자로 ''를 사용합니다. '/' 사용은 Windows에서 안정적이지 않습니다.
ChromeOptions options = new ChromeOptions();
Map<String, Object> prefs = new HashMap<String, Object>();
prefs.put("download.default_directory", "/directory/path");
options.setExperimentalOption("prefs", prefs);
인식되는 기능
ChromeDriver에서 허용하는 표준 기능은 Selenium 문서 및 W3C WebDriver 표준을 참고하세요. 여기에는 Chrome 관련 기능만 나와 있습니다.
ChromeOptions
객체
대부분의 Chrome 관련 기능은 ChromeOptions
객체를 통해 노출됩니다. 일부 언어에서는 ChromeOptions
클래스에 의해 구현됩니다. 다른 언어에서는 goog:chromeOptions
사전에 원하는 기능으로 저장됩니다.
perfLoggingPrefs
객체
perfLoggingPrefs 사전의 형식은 다음과 같습니다 (모든 키는 선택사항입니다).
이름 | 유형 | 기본 계정 | 설명 |
---|---|---|---|
enableNetwork
|
boolean | true | 네트워크 도메인에서 이벤트를 수집할지 여부입니다. |
enablePage
|
boolean | true | 페이지 도메인에서 이벤트를 수집할지 여부입니다. |
traceCategories
|
string | (비어있음) | 추적 이벤트를 수집해야 하는 Chrome 추적 카테고리의 쉼표로 구분된 문자열입니다. 지정되지 않거나 빈 문자열은 추적을 사용 중지합니다. |
bufferUsageReportingInterval
|
양의 정수 | 1,000 | DevTools 트레이스 버퍼 사용 이벤트 간에 요청된 밀리초 단위 시간입니다. 예를 들어 1,000인 경우, 초당 한 번이면 DevTools는 트레이스 버퍼가 얼마나 가득 찼는지를 보고합니다. 보고서에 버퍼 사용량이 100%라고 표시되면 경고가 표시됩니다. |
반환된 기능
다음은 반환되는 모든 Chrome 전용 기능의 목록입니다. (예: 사용자가 새 세션을 만들 때 ChromeDriver가 반환하는 내용)
이름 | 유형 | 설명 |
---|---|---|
chrome.chromedriverVersion
|
문자열 | ChromeDriver 버전 |
userDataDir
|
문자열 | Chrome이 사용 중인 사용자 데이터 디렉터리의 경로(참고: 'chrome' 사전) |