Erste Schritte mit ChromeDriver

Auf dieser Seite wird beschrieben, wie Sie mit ChromeDriver Ihre Website auf testen können. Desktop-Computer (Windows/Mac/Linux) Weitere Informationen Erste Schritte mit Android oder Erste Schritte mit ChromeOS.

Einrichtung

ChromeDriver ist eine separate ausführbare Datei, mit der Selenium WebDriver Chrome steuert. Sie wird vom Chromium-Team mit Unterstützung von WebDriver-Beitragenden verwaltet. Wenn Sie mit Selenium WebDriver nicht vertraut sind, sollten Sie die Website von Selenium besuchen.

So richten Sie Ihre Tests für die Ausführung mit ChromeDriver ein:

  • Achten Sie darauf, dass Chromium/Google Chrome an einem unterstützten Speicherort installiert ist. <ph type="x-smartling-placeholder">
  • Laden Sie im Bereich Downloads auf dieser Website das ChromeDriver-Binärprogramm für Ihre Plattform herunter.
  • WebDriver dabei helfen, die heruntergeladene ausführbare ChromeDriver-Datei zu finden

Jeder dieser Schritte sollte das Problem lösen:

  1. ChromeDriver-Speicherort in die Umgebungsvariablen PATH aufnehmen
  2. Nur Java: Geben Sie den Speicherort mit der Systemeigenschaft „webdriver.chrome.driver“ an (siehe Beispiel unten).
  3. (nur Python) muss den Pfad zu ChromeDriver bei der Instanziierung von webdriver.Chrome enthalten (siehe Beispiel unten).

Beispieltest

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()

ChromeDriver-Lebensdauer steuern

Mit der ChromeDriver-Klasse wird der ChromeDriver-Serverprozess bei der Erstellung gestartet und beim Beenden des Vorgangs beendet. Bei großen Testsuiten, in denen pro Test eine ChromeDriver-Instanz erstellt wird, kann dies viel Zeit verschwenden. Es gibt zwei Möglichkeiten, dies zu beheben:

  1. ChromeDriverService verwenden Diese Funktion ist für die meisten Sprachen verfügbar und ermöglicht Ihnen, den ChromeDriver-Server selbst zu starten oder zu beenden. Hier ein Java-Beispiel (mit 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()
  1. Starten Sie den ChromeDriver-Server separat, bevor Sie die Tests ausführen, und stellen Sie mithilfe von Remote WebDriver eine Verbindung zu ihm her.

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();
  }
}