با ChromeDriver شروع کنید

این صفحه نحوه شروع استفاده از ChromeDriver را برای آزمایش وب‌سایت خود در دسک‌تاپ (ویندوز/مک/لینوکس) نشان می‌دهد. همچنین می‌توانید شروع به کار با Android یا شروع به کار با ChromeOS را بخوانید.

برپایی

ChromeDriver یک فایل اجرایی جداگانه است که Selenium WebDriver از آن برای کنترل Chrome استفاده می کند. توسط تیم Chromium با کمک مشارکت کنندگان WebDriver نگهداری می شود. اگر با Selenium WebDriver آشنا نیستید، باید سایت Selenium را بررسی کنید.

این مراحل را برای تنظیم تست‌های خود برای اجرا با ChromeDriver دنبال کنید:

هر یک از این مراحل باید این ترفند را انجام دهد:

  1. مکان ChromeDriver را در متغیر محیطی PATH خود قرار دهید
  2. ( فقط جاوا ) مکان آن را با استفاده از ویژگی سیستم webdriver.chrome.driver مشخص کنید (نمونه زیر را ببینید)
  3. ( فقط Python ) مسیر ChromeDriver را هنگام نمونه سازی webdriver.Chrome (نمونه زیر را ببینید) را شامل می شود.

تست نمونه

جاوا:

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

پایتون:

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 را کنترل کنید

کلاس ChromeDriver فرآیند سرور ChromeDriver را هنگام ایجاد شروع می‌کند و با فراخوانی خروج، آن را خاتمه می‌دهد. این می‌تواند زمان قابل توجهی را برای مجموعه‌های آزمایشی بزرگ که در آن یک نمونه ChromeDriver در هر آزمایش ایجاد می‌شود، تلف کند. دو گزینه برای رفع این مشکل وجود دارد:

  1. از ChromeDriverService استفاده کنید. این برای اکثر زبان ها در دسترس است و به شما امکان می دهد سرور ChromeDriver را خودتان راه اندازی یا متوقف کنید. برای مثال جاوا (با 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...
  }
}

پایتون:

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. قبل از اجرای آزمایشات، سرور ChromeDriver را جداگانه راه اندازی کنید و با استفاده از Remote WebDriver به آن متصل شوید.

پایانه:

$ ./chromedriver
Starting ChromeDriver
76.0.3809.68 (...) on port 9515
...

جاوا:

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