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">
- </ph>
- ChromeDriver erwartet, dass Sie Chrome am Standardspeicherort für Ihre Plattform installiert haben. Sie können auch erzwingen, dass ChromeDriver einen benutzerdefinierten Standort verwendet, indem Sie eine spezielle Funktion festlegen.
- 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:
- ChromeDriver-Speicherort in die Umgebungsvariablen PATH aufnehmen
- Nur Java: Geben Sie den Speicherort mit der Systemeigenschaft „webdriver.chrome.driver“ an (siehe Beispiel unten).
- (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:
- 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()
- 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();
}
}