بدء استخدام ChromeDriver

توثّق هذه الصفحة كيفية بدء استخدام ChromeDriver لاختبار موقعك الإلكتروني على سطح المكتب (Windows/Mac/Linux). يمكنك أيضًا قراءة بدء استخدام Android أو بدء استخدام نظام التشغيل ChromeOS

ضبط إعدادات الجهاز

ChromeDriver هو ملف قابل للتنفيذ منفصل يستخدمه Selenium WebDriver للتحكّم في Chrome. يتولّى فريق Chromium صيانة هذا الرقم بمساعدة المساهمون في WebDriver. إذا لم تكن معتادًا على استخدام Selenium WebDriver، فيجب عليك زيارة موقع Selenium الإلكتروني.

اتبع هذه الخطوات لإعداد الاختبارات للتشغيل باستخدام ChromeDriver:

  • التأكُّد من تثبيت Chromium أو Google Chrome في مكان معروف
  • نزِّل برنامج ChromeDriver الثنائي لنظامك الأساسي ضمن قسم عمليات التنزيل في هذا الموقع الإلكتروني.
  • مساعدة WebDriver في العثور على ملف ChromeDriver التنفيذي الذي تم تنزيله

يمكنك تنفيذ الخدعة من خلال أي من هذه الخطوات:

  1. تضمين موقع ChromeDriver في متغيّر بيئة PATH
  2. (Java فقط) تحديد موقعها باستخدام خاصية النظام webdriver.chrome.driver (انظر النموذج أدناه)
  3. (Python فقط) تضمين المسار إلى ChromeDriver عند إنشاء مثيل webdriver.Chrome (انظر النموذج أدناه)

نموذج اختبار

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

بايثون:

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 أو إيقافه بنفسك. يمكنك الاطّلاع هنا على مثال على Java (باستخدام 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
...

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