Mulai menggunakan ChromeDriver

Halaman ini mendokumentasikan cara mulai menggunakan ChromeDriver untuk menguji situs Anda di {i>desktop<i} (Windows/Mac/Linux). Anda juga dapat membaca Mulai Menggunakan Android atau Mulai Menggunakan ChromeOS.

Penyiapan

ChromeDriver adalah file terpisah yang dapat dieksekusi yang digunakan Selenium WebDriver untuk mengontrol Chrome. File ini dikelola oleh tim Chromium dengan bantuan kontributor WebDriver. Jika Anda belum terbiasa dengan Selenium WebDriver, sebaiknya buka situs Selenium.

Ikuti langkah-langkah berikut untuk menyiapkan pengujian agar dapat dijalankan dengan ChromeDriver:

  • Pastikan Chromium/Google Chrome diinstal di lokasi yang dikenali
  • Download biner ChromeDriver untuk platform Anda di bagian download pada situs ini
  • Membantu WebDriver menemukan file ChromeDriver yang telah didownload dan dapat dieksekusi

Salah satu langkah berikut akan membantu Anda:

  1. menyertakan lokasi ChromeDriver dalam variabel lingkungan PATH Anda
  2. (Khusus Java) tentukan lokasinya menggunakan properti sistem webdriver.chrome.driver (lihat contoh di bawah)
  3. (Khusus Python) menyertakan jalur ke ChromeDriver saat membuat instance webdriver.Chrome (lihat contoh di bawah)

Contoh pengujian

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

Mengontrol masa aktif ChromeDriver

Class ChromeDriver memulai proses server ChromeDriver pada saat pembuatan dan menghentikannya saat tombol keluar dipanggil. Tindakan ini dapat membuang banyak waktu untuk rangkaian pengujian besar tempat instance ChromeDriver dibuat per pengujian. Ada dua opsi untuk memperbaiki hal ini:

  1. Menggunakan ChromeDriverService. Fitur ini tersedia untuk sebagian besar bahasa dan memungkinkan Anda memulai atau menghentikan sendiri server ChromeDriver. Lihat di sini untuk contoh Java (dengan 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. Mulai server ChromeDriver secara terpisah sebelum menjalankan pengujian, dan hubungkan ke server tersebut menggunakan WebDriver Jarak Jauh.

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