이 페이지에서는 Chrome Driver를 사용하여 있습니다 (Windows/Mac/Linux). 다음 내용도 읽어 보세요. Android 시작하기 또는 ChromeOS 시작하기
설정
ChromeDriver는 Selenium WebDriver가 Chrome을 제어하는 데 사용하는 별도의 실행 파일입니다. 이 버전은 WebDriver 참여자의 도움을 받아 Chromium팀에서 관리합니다. Selenium WebDriver에 대해 잘 모르는 경우, Selenium 사이트를 확인해 보세요.
ChromeDriver로 실행하기 위한 테스트를 설정하려면 다음 단계를 따르세요.
- Chromium/Chrome이 인식되는 위치에 설치되어 있는지 확인합니다.
<ph type="x-smartling-placeholder">
- </ph>
- ChromeDriver는 플랫폼의 기본 위치에 Chrome이 설치되어 있을 것으로 예상합니다. 특수 기능을 설정하여 ChromeDriver가 맞춤 위치를 사용하도록 강제할 수도 있습니다.
- 이 사이트의 다운로드 섹션에서 플랫폼에 맞는 ChromeDriver 바이너리를 다운로드합니다.
- WebDriver가 다운로드한 ChromeDriver 실행 파일을 찾도록 지원
다음 중 어느 단계에서든 문제를 해결할 수 있습니다.
- PATH 환경 변수에 ChromeDriver 위치를 포함합니다.
- (Java에만 해당) webdriver.chrome.driver 시스템 속성을 사용하여 위치를 지정합니다 (아래 샘플 참고).
- (Python만 해당) webdriver.Chrome을 인스턴스화할 때 ChromeDriver 경로 포함 (아래 샘플 참조)
샘플 테스트
자바
import org.openqa.selenium.*;
import org.openqa.selenium.chrome.*;
import org.junit.Test;
public class GettingStarted {
@Test
public void testGoogleSearch() throws InterruptedException {
// Optional. If not specified, WebDriver searches the PATH for chromedriver.
// System.setProperty("webdriver.chrome.driver", "/path/to/chromedriver");
// WebDriver driver = new ChromeDriver();
driver.get("http://www.google.com/");
Thread.sleep(5000); // Let the user actually see something!
WebElement searchBox = driver.findElement(By.name("q"));
searchBox.sendKeys("ChromeDriver");
searchBox.submit();
Thread.sleep(5000); // Let the user actually see something!
driver.quit();
}
}
Python
import time
from selenium import webdriver
driver = webdriver.Chrome('/path/to/chromedriver') # Optional argument, if not specified will search path.
driver.get('http://www.google.com/');
time.sleep(5) # Let the user actually see something!
search_box = driver.find_element_by_name('q')
search_box.send_keys('ChromeDriver')
search_box.submit()
time.sleep(5) # Let the user actually see something!
driver.quit()
ChromeDriver의 전체 기간 제어
ChromeDriver 클래스는 생성 시 ChromeDriver 서버 프로세스를 시작하고 quit이 호출되면 이를 종료합니다. 이는 테스트당 ChromeDriver 인스턴스가 생성되는 대규모 테스트 도구 모음에서 상당한 시간을 낭비할 수 있습니다. 이 문제를 해결하는 방법에는 두 가지가 있습니다.
- ChromeDriverService를 사용합니다. 대부분의 언어에서 사용할 수 있으며, 이를 통해 ChromeDriver 서버를 직접 시작하거나 중지할 수 있습니다. Java 예제 (JUnit 4 포함)는 여기를 참조하세요.
import java.io.*;
import org.junit.*;
import org.openqa.selenium.*;
import org.openqa.selenium.chrome.*;
import org.openqa.selenium.remote.*;
public class GettingStartedWithService {
private static ChromeDriverService service;
private WebDriver driver;
@BeforeClass
public static void createAndStartService() throws IOException {
service = new ChromeDriverService.Builder()
.usingDriverExecutable(new File("/path/to/chromedriver"))
.usingAnyFreePort()
.build();
service.start();
}
@AfterClass
public static void stopService() {
service.stop();
}
@Before
public void createDriver() {
driver = new RemoteWebDriver(service.getUrl(), new ChromeOptions());
}
@After public void quitDriver() {
driver.quit();
}
@Test
public void testGoogleSearch() {
driver.get("http://www.google.com");
// rest of the test...
}
}
Python
import time
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
service = Service('/path/to/chromedriver')
service.start()
driver = webdriver.Remote(service.service_url)
driver.get('http://www.google.com/');
time.sleep(5) # Let the user actually see something!
driver.quit()
- 테스트를 실행하기 전에 별도로 ChromeDriver 서버를 시작하고 원격 WebDriver를 사용하여 연결합니다.
터미널:
$ ./chromedriver
Starting ChromeDriver
76.0.3809.68 (...) on port 9515
...
자바
import java.net.*;
import org.openqa.selenium.*;
import org.openqa.selenium.chrome.*;
import org.openqa.selenium.remote.*;
public class GettingStartedRemote {
public static void main(String[] args) throws MalformedURLException {
WebDriver driver = new RemoteWebDriver(
new URL("http://127.0.0.1:9515"),
new ChromeOptions());
driver.get("http://www.google.com");
driver.quit();
}
}