ChromeDriver का इस्तेमाल शुरू करना

इस पेज में बताया गया है कि डेस्कटॉप (Windows/Mac/Linux) पर अपनी वेबसाइट की जांच करने के लिए, ChromeDriver का इस्तेमाल कैसे शुरू करें. आपके पास यह भी पढ़ने का विकल्प है: Android का इस्तेमाल शुरू करना या ChromeOS का इस्तेमाल शुरू करना.

सेटअप

ChromeDriver अलग से एक्ज़ीक्यूटेबल है, जिसका इस्तेमाल Selenium WebDriver, Chrome को कंट्रोल करने के लिए करता है. Chromium की टीम, WebDriver पर योगदान देने वाले लोगों की मदद से, इसका रखरखाव करती है. अगर आप Selenium WebDriver के बारे में कुछ नहीं जानते हैं, तो Selenium की साइट देखें.

ChromeDriver के साथ चलाने के लिए अपने परीक्षण सेटअप करने के लिए इन चरणों का पालन करें:

  • पक्का करें कि Chromium/Google Chrome को जानी-पहचानी जगह पर इंस्टॉल किया गया हो
  • इस साइट के डाउनलोड सेक्शन में जाकर, अपने प्लैटफ़ॉर्म के लिए ChromeDriver बाइनरी डाउनलोड करें
  • डाउनलोड किए गए ChromeDriver का इस्तेमाल करने लायक फ़ाइल ढूंढने में WebDriver की मदद करना

इनमें से किसी भी चरण से काम हो जाना चाहिए:

  1. अपने PATH के एनवायरमेंट वैरिएबल में ChromeDriver की जगह की जानकारी शामिल करें
  2. (सिर्फ़ Java के लिए) webdriver.chrome.driver सिस्टम प्रॉपर्टी का इस्तेमाल करके, इसकी जगह की जानकारी देने के लिए (नीचे दिया गया उदाहरण देखें)
  3. (सिर्फ़ Python) webdriver.Chrome को इंस्टैंशिएट करते समय, ChromeDriver का पाथ शामिल करें (नीचे दिया गया उदाहरण देखें)

टेस्ट के लिए सैंपल

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 का लाइफ़टाइम कंट्रोल करें

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...
  }
}

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. अपने टेस्ट चलाने से पहले, ChromeDriver सर्वर को अलग से शुरू करें और रिमोट 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();
  }
}