Z tej strony dowiesz się, jak zacząć używać ChromeDriver do testowania witryny na komputerze (Windows/Mac/Linux). Możesz też przeczytać Pierwsze kroki z Androidem lub Pierwsze kroki z ChromeOS
Konfiguracja
ChromeDriver to oddzielny plik wykonywalny, którego Selenium WebDriver używa do sterowania Chrome. Zajmuje się nim zespół Chromium z pomocą współtwórców WebDriver. Jeśli nie znasz usługi Selenium WebDriver, odwiedź witrynę Selenium.
Aby skonfigurować testy pod kątem działania z użyciem ChromeDriver, wykonaj te czynności:
- Upewnij się, że Chromium/Google Chrome jest zainstalowany w rozpoznanej lokalizacji
- ChromeDriver wymaga, aby przeglądarka Chrome była zainstalowana w domyślnej lokalizacji używanej na platformie. Możesz też wymusić używanie przez ChromeDriver lokalizacji niestandardowej, ustawiając specjalną funkcję.
 
- Pobierz plik binarny ChromeDriver dla swojej platformy z sekcji pobierania na tej stronie.
- Pomóż usłudze WebDriver znaleźć pobrany plik wykonywalny ChromeDriver
Każda z tych czynności powinna załatwić sprawę:
- uwzględnij lokalizację ChromeDriver w zmiennej środowiskowej PATH
- (tylko w języku Java) określ lokalizację za pomocą właściwości systemowej webdriver.chrome.driver (zobacz przykład poniżej).
- (tylko w Pythonie) podczas tworzenia instancji webdriver.Chrome podaj ścieżkę do ChromeDriver (zobacz przykład poniżej).
Przykładowy test
Java:
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()
Kontrolowanie czasu działania ChromeDriver
Klasa ChromeDriver rozpoczyna proces serwera ChromeDriver w momencie utworzenia i kończy go po wywołaniu zakończenia. Może to zaoszczędzić dużo czasu w przypadku dużych zestawów testowych, w których w jednym teście tworzona jest instancja ChromeDriver. Możesz to zmienić na 2 sposoby:
- korzystać z usługi ChromeDriverService. Jest to dostępne w większości języków i umożliwia samodzielne uruchomienie lub zatrzymanie serwera ChromeDriver. Tutaj znajdziesz przykład Javy (w 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()
- Przed przeprowadzeniem testów uruchom serwer ChromeDriver oddzielnie i połącz się z nim przy użyciu Remote WebDriver.
Terminal:
$ ./chromedriver
Starting ChromeDriver
76.0.3809.68 (...) on port 9515
...
Java:
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();
  }
}