기능은 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");
명령줄에서 Chrome을 실행하거나 ChromeDriver를 사용하여 user-data-dir
스위치를 새 디렉터리로 설정하여 맞춤 프로필을 만듭니다.
경로가 없으면 Chrome에서 지정된 위치에 새 프로필을 만듭니다. 그런 다음 프로필 설정을 수정할 수 있으며 ChromeDriver는 나중에 프로필을 사용할 수 있습니다. 브라우저에서 chrome://version
를 열어 Chrome에서 사용 중인 프로필을 확인합니다.
Chrome을 최대화하여 시작
start-maximized
스위치를 사용하여 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는 다운로드가 완료될 때까지 자동으로 기다리지 않습니다.
driver.quit()
를 너무 일찍 호출하면 다운로드가 완료되기 전에 Chrome이 종료될 수 있습니다. - 상대 경로는 항상 작동하지 않으므로 최상의 결과를 얻으려면 전체 경로를 사용하세요.
- Windows에서는
\` as path separators.
/` 를 사용하면 안 됩니다.
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
사전의 형식은 다음과 같습니다. 모든 키는 선택사항입니다.
반환된 기능
다음은 Chrome에서 반환되는 모든 기능, 즉 새 세션을 만들 때 ChromeDriver가 반환하는 항목의 목록입니다.