ChromeDriver'ı kullanmaya başlayın

Bu sayfada, web sitenizi masaüstünde (Windows/Mac/Linux) test etmek için ChromeDriver'ı kullanmaya nasıl başlayacağınız açıklanmaktadır. Android'i Kullanmaya Başlama veya ChromeOS'i Kullanmaya Başlama sayfalarını da okuyabilirsiniz.

Kurulum

ChromeDriver, Selenium WebDriver'ın Chrome'u kontrol etmek için kullandığı ayrı bir yürütülebilir dosyadır. Bu araç, Chromium ekibi tarafından WebDriver'a katkıda bulunanların yardımıyla yönetilir. Selenium WebDriver'a aşina değilseniz Selenium sitesine göz atmanız gerekir.

ChromeDriver ile çalıştırılacak testlerinizi ayarlamak için şu adımları uygulayın:

  • Chromium/Google Chrome'un bilinen bir konumda yüklü olduğundan emin olun
  • Bu sitenin indirmeler bölümünden platformunuz için ChromeDriver ikili programını indirin
  • WebDriver'ın, indirilen ChromeDriver yürütülebilir dosyasını bulmasına yardımcı olma

Aşağıdaki adımlardan herhangi biri işinize yarayacaktır:

  1. ChromeDriver konumunu PATH ortam değişkeninize ekleyin
  2. (Yalnızca Java), konumunu webdriver.chrome.driver sistem özelliğini kullanarak belirtin (aşağıdaki örneğe bakın)
  3. (Yalnızca Python), webdriver.Chrome'u örneklendirirken ChromeDriver yolunu içerir (aşağıdaki örneğe bakın)

Örnek test

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'ın kullanım ömrünü kontrol edin

ChromeDriver sınıfı, oluşturma sırasında ChromeDriver sunucu işlemini başlatır ve çıkış işlevi çağrıldığında bu işlemi sonlandırır. Bu durum, test başına bir ChromeDriver örneğinin oluşturulduğu büyük test paketleri için önemli ölçüde zaman kaybına neden olabilir. Bu sorunu çözmek için iki seçenek vardır:

  1. ChromeDriverService'i kullanın. Bu seçenek çoğu dilde kullanılabilir ve ChromeDriver sunucusunu kendiniz başlatmanıza veya durdurmanıza olanak sağlar. Java örneği için buraya bakın (JUnit 4 ile):
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. Testlerinizi çalıştırmadan önce ChromeDriver sunucusunu ayrı olarak başlatın ve Remote WebDriver'ı kullanarak sunucuya bağlanın.

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