기능은 ChromeDriver 세션을 맞춤설정하고 구성하는 데 사용할 수 있는 옵션입니다. 이 페이지에서는 모든 ChromeDriver 지원 기능과 사용 방법을 설명합니다.
WebDriver 언어 API는 ChromeDriver에 기능을 전달하는 방법을 제공합니다. 정확한 메커니즘은 언어에 따라 다르지만 대부분의 언어에서는 다음 메커니즘 중 하나 또는 둘 다를 사용합니다.
ChromeOptions
클래스를 사용합니다. 이는 Java, Python 등에서 지원됩니다.DesiredCapabilities
클래스를 사용합니다. 이는 Python, Ruby 등에서 지원됩니다. Java에서도 사용할 수 있지만 Java에서는 사용되지 않습니다.
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.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에서 사용 중인 프로필을 확인하려면 브라우저에서 chrome://version을 엽니다.
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);
인정되는 기능
표준을 확인하려면 Selenium 문서 및 W3C WebDriver 표준을 참고하세요. ChromeDriver가 수락하는 기능입니다. 여기에는 Chrome과 관련된 기능을 제공합니다
ChromeOptions
객체
대부분의 Chrome 관련 기능은 ChromeOptions
를 통해 노출됩니다.
객체를 지정합니다. 일부 언어에서는 ChromeOptions
클래스로 구현됩니다. 포함
goog:chromeOptions
사전에 저장되어 있습니다.
사용할 수 있습니다
perfLoggingPrefs
객체
perfLoggingPrefs 사전의 형식은 다음과 같습니다 (모든 키는 선택사항임).
이름 | 유형 | 기본값 | 설명 |
---|---|---|---|
enableNetwork
|
부울 | true | 네트워크 도메인에서 이벤트를 수집할지 여부입니다. |
enablePage
|
부울 | true | 페이지 도메인에서 이벤트를 수집할지 여부입니다. |
traceCategories
|
문자열 | (비어있음) | 트레이스 이벤트를 수집해야 하는 Chrome 추적 카테고리의 쉼표로 구분된 문자열입니다. 지정되지 않거나 비어 있는 문자열은 추적을 사용 중지합니다. |
bufferUsageReportingInterval
|
양의 정수 | 1000 | DevTools 트레이스 버퍼 사용 이벤트 간에 요청된 시간(밀리초)입니다. 예를 들어 1,000개라면 초당 한 번이면 DevTools는 트레이스 버퍼가 얼마나 가득 찼는지 보고합니다. 보고서에 버퍼 사용량이 100%라고 표시되면 경고가 발행됩니다. |
반환된 기능
다음은 Chrome과 관련하여 반환된 모든 기능의 목록입니다. (즉, 새 세션을 만들 때 ChromeDriver가 반환하는 항목)
이름 | 유형 | 설명 |
---|---|---|
chrome.chromedriverVersion
|
문자열 | ChromeDriver 버전 |
userDataDir
|
문자열 | Chrome에서 사용 중인 사용자 데이터 디렉터리의 경로 'chrome'이라는 창에 사전 |