क्रोम में सेलेनियम वेबड्राइवर परीक्षण मामलों को कैसे चलाएं?


160

मैंने यह कोशिश की

WebDriver driver = new ChromeDriver();

लेकिन मैं के रूप में त्रुटि हो रही है

विफल परीक्षण: setUp (com.TEST): ड्राइवर के निष्पादन योग्य मार्ग को webdriver.chrome.driver सिस्टम गुण द्वारा सेट किया जाना चाहिए; अधिक जानकारी के लिए, यहां कोड देखें । नवीनतम संस्करण को लिंक से डाउनलोड किया जा सकता है

मैं सेलेनियम-वेबड्राइवर परीक्षण मामलों का परीक्षण करने के लिए क्रोम कैसे बना सकता हूं?


यदि आप बता सकते हैं कि यह उपयोगी है, तो क्या आपने सेलेनियम क्रोम ड्राइवर को code.google.com/p/chromedriver/downloads/list से डाउनलोड किया है और इसे सेलेनियम-जावा चलाने से पहले "बाहरी जार जोड़ें" के तहत ग्रहण में लाइब्रेरी में जोड़ा है कोड।
हेमंत 14

जवाबों:


252

आपको निष्पादन योग्य ड्राइवर को: ChromeDriver डाउनलोड से डाउनलोड करना होगा

फिर आपको बस ड्राइवर ऑब्जेक्ट बनाने से पहले निम्नलिखित का उपयोग करना होगा (पहले से ही सही क्रम में दिखाया गया है):

System.setProperty("webdriver.chrome.driver", "/path/to/chromedriver");
WebDriver driver = new ChromeDriver();

इसे क्रोमड्राइव डॉक्यूमेंटेशन से सबसे उपयोगी गाइड से निकाला गया था ।


@ एंबायर: अरे मैं भी इसी समस्या का सामना कर रहा हूं। मैंने आपके द्वारा सुझाई गई बात को पूरा किया लेकिन यह त्रुटि हुई। "java.lang.IllegalStateException: ड्राइवर निष्पादन योग्य मौजूद नहीं है: D: \ selenimPRJarg1 \ chromedriver.exe" क्या मैं कुछ याद कर रहा हूं? "
kTiwari

आपको सेलेनियम स्टैंडअलोन सर्वर को यहां से डाउनलोड करना होगा docs.seleniumhq.org/download , और जार फ़ाइल को अपने जावा प्रोजेक्ट पर निर्भरता के रूप में जोड़ें।
डिकरिल

4
आप इसका उपयोग / प्रकार कहां करते हैं? System.setProperty ("webdriver.chrome.driver", "/ path / to / chromedriver"); WebDriver ड्राइवर = नया ChromeDriver ();
tijnn 15

1
मैंने इस प्रश्न के हर उत्तर का पता लगाया है और केवल इसने मेरे लिए काम किया है। (y)
puffles

हालांकि यह तकनीकी रूप से सही है, आपको वास्तव में उस पर्यावरण चर को कोड में सेट नहीं करना चाहिए, यह आपके कोड में पथ कोडिंग के समान कठिन है। पर्यावरण चर को उस मशीन पर सेट किया जाना चाहिए जिस पर आप कोड चलाते हैं, जिससे प्रत्येक मशीन क्रोम ड्राइवर को एक अनोखी जगह पर स्टोर करने की अनुमति देती है लेकिन अभी भी सब कुछ काम करता है।
आर्देसको

21

से क्रोम चालक के डाउनलोड अद्यतन संस्करण क्रोम ड्राइवर कृपया रिलीज टिप्पणी पढ़ें साथ ही यहाँ क्रोम ब्राउज़र तो अद्यतन किया जाता है, तो आप ऊपर के लिंक से डाउनलोड नई chormedriver करने की जरूरत है, क्योंकि यह नया ब्राउज़र संस्करण के साथ कॉम्पैक्ट में सक्षम होगा।

 public class chrome 
 {

  public static void main(String[] args) {

       System.setProperty("webdriver.chrome.driver", "/path/to/chromedriver");
       WebDriver driver = new ChromeDriver();


    driver.get("http://www.google.com");

  }

 }

3
अब यह एक बोझिल समाधान है। मैं आपको इसे बदलने की सलाह दूंगा यदि आप आजकल इसका उपयोग करते हैं।
ऐम्बायर

1
डाउनलोड लिंक अब पुराना हो गया है।
कोडिंग किया

यह कोड Google Chrome संस्करण 69.0.3497.100 (आधिकारिक बिल्ड) (64-बिट) में काम नहीं कर रहा है। कृपया नए कोड का सुझाव दें। अब तक यह 65.0.0 संस्करण से कम पुराने संस्करण में काम कर रहा था
मितेश ठाकरी

18

आपको chromeDriver को एक फ़ोल्डर में डाउनलोड करना चाहिए, और इस फ़ोल्डर को अपने पथ चर में जोड़ना चाहिए। आपको इसे काम करने के लिए अपने कंसोल को पुनरारंभ करना होगा।


8

यदि आप एक MacOS पर होमब्रे का उपयोग कर रहे हैं, तो आप कमांड का उपयोग कर सकते हैं:

(संपादित करें) :brew tap homebrew/cask && brew cask install chromedriver

यह ठीक काम करना चाहिए उसके बाद कोई अन्य कॉन्फ़िगरेशन के साथ।


2
अब तक यह है brew tap homebrew/cask && brew cask install chromedriver
luk2302

6

आपको क्रोम चालक को स्थापित करने की आवश्यकता है। आप इस पैकेज को नीचे दिखाए गए अनुसार डली का उपयोग करके स्थापित कर सकते हैं


1
यह एक हो सकता है लेकिन नुगेट पर संस्करण बहुत पुराना है: 2.10.0 दिनांकित अक्टूबर 13 2014
फ्रीटास ने

23 मार्च को फिर से आउट किया गया। नवीनतम क्रोम पर उपयोग करने में असमर्थ।
विलेम

6

क्रोम में सेलेनियम वेब-ड्राइवर का उपयोग करके परीक्षण मामलों को चलाने के लिए आप नीचे दिए गए कोड का उपयोग कर सकते हैं:

import java.io.IOException;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;

public class ChromeTest {

    /**
     * @param args
     * @throws InterruptedException
     * @throws IOException 
     */
    public static void main(String[] args) throws InterruptedException, IOException {
        // Telling the system where to find the Chrome driver
        System.setProperty(
                "webdriver.chrome.driver",
                "E:/chromedriver_win32/chromedriver.exe");

        WebDriver webDriver = new ChromeDriver();

        // Open google.com
        webDriver.navigate().to("http://www.google.com");

        String html = webDriver.getPageSource();

        // Printing result here.
        System.out.println(html);

        webDriver.close();
        webDriver.quit();
    }
}

5

chromedriver यहां का नवीनतम संस्करण खोजें । एक बार डाउनलोड करने के बाद, इसे अपने अजगर स्थापना, जैसे C:/Program Files/Python-3.5, और इसे छोड़ दें। आपको कहीं भी पथ निर्दिष्ट करने की आवश्यकता नहीं है और / या chromedriverअपने पथ या इस तरह जोड़ें। मैंने इसे केवल एक साफ पायथन इंस्टॉलेशन पर किया था और यह काम करता है।


4
बुरी सलाह ... अपने अजगर स्थापना को प्रदूषित न करें
कोरी गोल्डबर्ग

इसके अलावा, ओपी ने पायथन को कभी भी निर्दिष्ट नहीं किया
कोरी गोल्डबर्ग ने

4

क्रोम ड्राइवर का नवीनतम संस्करण डाउनलोड करें और इस कोड का उपयोग करें:

System.setProperty("webdriver.chrome.driver", " path of chromedriver.exe");
WebDriver driver= new ChromeDriver();
driver.manage().window().maximize();
Thread.sleep(10000);
driver.get("http://stackoverflow.com");

1

उबंटू पर, आप बस chromium-chromedriverपैकेज स्थापित कर सकते हैं :

apt install chromium-chromedriver

विदित हो कि यह एक पुराना सेलेनियम संस्करण भी स्थापित करता है। नवीनतम सेलेनियम स्थापित करने के लिए:

pip install selenium

0

उपरोक्त सभी उत्तर सही हैं, निम्नलिखित समस्या और समाधान में थोड़ा गहरा गोता लगाते हैं।

उदाहरण के लिए सेलेनियम में ड्राइवर का निर्माण

WebDriver driver = new ChromeDriver();

ड्राइवर निष्पादन योग्य के लिए खोज, इस मामले में क्रोम चालक निष्पादन योग्य के लिए क्रोम ड्राइवर की खोज करता है, अगर सेवा निष्पादन योग्य नहीं है तो अपवाद फेंक दिया जाता है।

यह वह जगह है जहाँ से अपवाद आता है (चेक राज्य विधि पर ध्यान दें)

 /**
   *
   * @param exeName Name of the executable file to look for in PATH
   * @param exeProperty Name of a system property that specifies the path to the executable file
   * @param exeDocs The link to the driver documentation page
   * @param exeDownload The link to the driver download page
   *
   * @return The driver executable as a {@link File} object
   * @throws IllegalStateException If the executable not found or cannot be executed
   */
  protected static File findExecutable(
      String exeName,
      String exeProperty,
      String exeDocs,
      String exeDownload) {
    String defaultPath = new ExecutableFinder().find(exeName);
    String exePath = System.getProperty(exeProperty, defaultPath);
    checkState(exePath != null,
        "The path to the driver executable must be set by the %s system property;"
            + " for more information, see %s. "
            + "The latest version can be downloaded from %s",
            exeProperty, exeDocs, exeDownload);

    File exe = new File(exePath);
    checkExecutable(exe);
    return exe;
  }

निम्नलिखित जाँच राज्य विधि है जो अपवाद फेंकता है

  /**
   * Ensures the truth of an expression involving the state of the calling instance, but not
   * involving any parameters to the calling method.
   *
   * <p>See {@link #checkState(boolean, String, Object...)} for details.
   */
  public static void checkState(
      boolean b,
      @Nullable String errorMessageTemplate,
      @Nullable Object p1,
      @Nullable Object p2,
      @Nullable Object p3) {
    if (!b) {
      throw new IllegalStateException(format(errorMessageTemplate, p1, p2, p3));
    }
  }

समाधान : ड्राइवर ऑब्जेक्ट बनाने से पहले सिस्टम गुण सेट करें

System.setProperty("webdriver.gecko.driver", "path/to/chromedriver.exe");
WebDriver driver = new ChromeDriver();

निम्नलिखित कोड स्निपेट (क्रोम और फ़ायरफ़ॉक्स के लिए) है जहां ड्राइवर सेवा ड्राइवर के निष्पादन के लिए खोज करती है:

क्रोम:

   @Override
    protected File findDefaultExecutable() {
      return findExecutable("chromedriver", CHROME_DRIVER_EXE_PROPERTY,
          "https://github.com/SeleniumHQ/selenium/wiki/ChromeDriver",
          "http://chromedriver.storage.googleapis.com/index.html");
    }

फ़ायर्फ़ॉक्स:

@Override
 protected File findDefaultExecutable() {
      return findExecutable(
        "geckodriver", GECKO_DRIVER_EXE_PROPERTY,
        "https://github.com/mozilla/geckodriver",
        "https://github.com/mozilla/geckodriver/releases");
    }

जहाँ CHROME_DRIVER_EXE_PROPERTY = "webdriver.chrome.driver" और GECKO_DRIVER_EXE_PROPERTY = "webdriver.gecko.dverver"

अन्य ब्राउज़रों के लिए भी ऐसा ही है, निम्नलिखित ब्राउज़र कार्यान्वयन की सूची का स्नैपशॉट है

यहां छवि विवरण दर्ज करें


0
To run Selenium WebDriver test cases in Chrome, follow these steps:


first of all set the property & chrome driver path

System.setProperty("webdriver.chrome.driver", "/path/to/chromedriver");
then initialize the Chrome Driver's object

WebDriver driver = new ChromeDriver();
then pass the url into get method of WebDriver

driver.get("http://www.google.com");

0

मैंने बाइनरी को अपने प्रोजेक्ट संसाधनों में शामिल किया जैसे कि direcotry:

src\main\resources\chrome\chromedriver_win32.zip
src\main\resources\chrome\chromedriver_mac64.zip
src\main\resources\chrome\chromedriver_linux64.zip

कोड:

import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.SystemUtils;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;

import java.io.*;
import java.nio.file.Files;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;

public WebDriver getWebDriver() throws IOException {
    File tempDir = Files.createTempDirectory("chromedriver").toFile();
    tempDir.deleteOnExit();
    File chromeDriverExecutable;

    final String zipResource;
    if (SystemUtils.IS_OS_WINDOWS) {
        zipResource = "chromedriver_win32.zip";
    } else if (SystemUtils.IS_OS_LINUX) {
        zipResource = "chromedriver_linux64.zip";
    } else if (SystemUtils.IS_OS_MAC) {
        zipResource = "chrome/chromedriver_mac64.zip";
    } else {
        throw new RuntimeException("Unsuppoerted OS");
    }

    try (InputStream is = getClass().getResourceAsStream("/chrome/" + zipResource)) {
        try (ZipInputStream zis = new ZipInputStream(is)) {
            ZipEntry entry;
            entry = zis.getNextEntry();
            chromeDriverExecutable = new File(tempDir, entry.getName());
            chromeDriverExecutable.deleteOnExit();
            try (OutputStream out = new FileOutputStream(chromeDriverExecutable)) {
                IOUtils.copy(zis, out);
            }
        }
    }

    System.setProperty("webdriver.chrome.driver", chromeDriverExecutable.getAbsolutePath());
    return new ChromeDriver();
}

-2

क्रोमेड्राइवर के एक्स को डाउनलोड करें और इसे वर्तमान परियोजना स्थान पर निकालें। यहां लिंक, जहां हम क्रोमेड्रिवर का नवीनतम संस्करण डाउनलोड कर सकते हैं।

https://sites.google.com/a/chromium.org/chromedriver/

यहां लॉन्च ब्राउज़र के लिए सरल कोड और url पर नेविगेट करें।

System.setProperty("webdriver.chrome.driver", "path of chromedriver.exe");

WebDriver driver = new ChromeDriver();

driver.get("https://any_url.com");

क्रोमड्राइवर डाउनलोड करें और इसे निकालें। अगले अपने प्रोजेक्ट में एक फोल्डर बनाएं और उसे क्रोमेड्रिवर नाम दें और उसमें .exe फ़ाइल रखें। और इस पथ का उपयोग करें। यह सरल कोड उदाहरण है। 'कोड' System.setProperty ("webdriver.chrome.driver", System.getProperty ("user.dir") + "\\ chromedriver \\ chromedriver.exe"); WebDriver ड्राइवर = नया ChromeDriver (); Driver.get (" google.co.in" ); WebElement searchbox = driver.findElement (By.name ("q")); searchbox.sendKeys ("सर्वश्रेष्ठ सेलेनियम वीडियो ट्यूटोरियल फ्री"); searchbox.submit ();
विनय

कृपया, इस उत्तर को अतिरिक्त जानकारी के साथ अद्यतन करने पर विचार करें जिस पर विनय ने टिप्पणी की।
रिकार्डो सूजा
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.