Questa pagina descrive come iniziare a utilizzare ChromeDriver per testare il tuo sito web sul computer (Windows/Mac/Linux). Puoi anche leggere la Guida introduttiva ad Android o Guida introduttiva a ChromeOS.
Configurazione
ChromeDriver è un eseguibile separato che Selenium WebDriver utilizza per controllare Chrome. È gestito dal team di Chromium con l'aiuto dei collaboratori di WebDriver. Se non hai dimestichezza con Selenium WebDriver, visita il sito di Selenium.
Segui questi passaggi per configurare i test per l'esecuzione con ChromeDriver:
- Assicurati che Chromium/Google Chrome siano installati in una posizione riconosciuta
- ChromeDriver si aspetta che Chrome sia installato nel percorso predefinito della tua piattaforma. Puoi anche forzare ChromeDriver a utilizzare una posizione personalizzata impostando una funzionalità speciale.
- Scarica il file binario di ChromeDriver per la tua piattaforma nella sezione Download di questo sito
- Aiuta WebDriver a trovare l'eseguibile ChromeDriver scaricato
Ognuno di questi passaggi dovrebbe risolvere il problema:
- includi la posizione di ChromeDriver nella variabile di ambiente PATH
- (Solo Java) specifica la relativa posizione utilizzando la proprietà di sistema webdriver.chrome.driver (vedi l'esempio di seguito).
- (Solo Python) include il percorso di ChromeDriver quando crei un'istanza webdriver.Chrome (vedi l'esempio di seguito).
Test di esempio
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()
Controlla l'intero ciclo di vita di ChromeDriver
La classe ChromeDriver avvia il processo del server ChromeDriver al momento della creazione e lo termina quando viene richiamata l'uscita. Ciò può comportare una notevole quantità di tempo per le suite di test di grandi dimensioni in cui viene creata un'istanza ChromeDriver per ogni test. Esistono due opzioni per risolvere il problema:
- Utilizzare ChromeDriverService. Questa opzione è disponibile per la maggior parte delle lingue e ti consente di avviare o arrestare autonomamente il server ChromeDriver. Vedi qui per un esempio Java (con 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()
- Avvia il server ChromeDriver separatamente prima di eseguire i test e connettiti al server utilizzando il WebDriver remoto.
Terminale:
$ ./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();
}
}