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