Deze pagina documenteert hoe u ChromeDriver kunt gaan gebruiken voor het testen van uw website op desktop (Windows/Mac/Linux). U kunt ook Aan de slag met Android of Aan de slag met ChromeOS lezen.
Installatie
ChromeDriver is een afzonderlijk uitvoerbaar bestand dat Selenium WebDriver gebruikt om Chrome te besturen. Het wordt onderhouden door het Chromium-team met hulp van WebDriver-bijdragers. Als u niet bekend bent met Selenium WebDriver, kijk dan eens op de Selenium-site .
Volg deze stappen om uw tests in te stellen voor uitvoering met ChromeDriver:
- Zorg ervoor dat Chromium en Google Chrome op een erkende locatie zijn geïnstalleerd.
- ChromeDriver verwacht dat Chrome op de standaardlocatie voor uw platform is geïnstalleerd. U kunt ChromeDriver dwingen een aangepaste locatie te gebruiken door een speciale mogelijkheid in te stellen.
- Download het binaire ChromeDriver-bestand voor uw platform.
- Help WebDriver het gedownloade uitvoerbare bestand van ChromeDriver te vinden.
Elk van deze stappen zou moeten werken:
- Neem de ChromeDriver-locatie op in uw PATH-omgevingsvariabele
- ( Alleen Java ) Geef de locatie op met behulp van de systeemeigenschap
webdriver.chrome.driver
(zie voorbeeld hieronder) - ( Alleen Python ) Voeg het pad naar ChromeDriver toe bij het instantiëren van
webdriver.Chrome
. Zie de volgende voorbeelden.
Voorbeeld Java-test
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();
}
}
Voorbeeld Python-test
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()
Beheer de levensduur van ChromeDriver
De ChromeDriver-klasse start het ChromeDriver-serverproces bij het maken en beëindigt het wanneer quit wordt aangeroepen. Dit kan een aanzienlijke hoeveelheid tijd verspillen voor grote testsuites waarbij per test een ChromeDriver-instantie wordt gemaakt. Er zijn twee opties om dit te verhelpen: ChromeDriverService en het afzonderlijk starten van ChromeDriver.
ChromeDriverService
Gebruik de ChromeDriverService. Dit is beschikbaar voor de meeste talen en hiermee kunt u de ChromeDriver-server zelf starten of stoppen. Hier is een Java-voorbeeld, met 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()
Start ChromeDriver afzonderlijk
Start de ChromeDriver-server afzonderlijk voordat u uw tests uitvoert, en maak er verbinding mee via de 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();
}
}