क्षमताओं वे विकल्प हैं जिनका इस्तेमाल आप ChromeDriver सत्र को पसंद के मुताबिक बनाने और कॉन्फ़िगर करने के लिए कर सकते हैं. इस पेज पर, ChromeDriver के साथ काम करने वाली सभी सुविधाओं और उन्हें इस्तेमाल करने के तरीके की जानकारी दी गई है.
WebDriver language API, ChromeDriver में क्षमताओं को पास करने के तरीके उपलब्ध कराता है. सटीक तरीका भाषा के हिसाब से अलग है, लेकिन ज़्यादातर भाषाओं में इनमें से किसी एक या दोनों तरीकों का इस्तेमाल किया जाता है:
ChromeOptions
क्लास का इस्तेमाल करें. यह Java, Python वगैरह के साथ काम करता है.DesiredCapabilities
क्लास का इस्तेमाल करें. यह Python, Ruby वगैरह में काम करता है. हालांकि, यह Java में भी उपलब्ध है, लेकिन Java में इसके इस्तेमाल की अनुमति नहीं है.
ChromeOptions क्लास का इस्तेमाल करना
आपके पास ChromeOptions
का एक इंस्टेंस बनाने का विकल्प है. इसमें ChromeDriver की खास सुविधाओं को सेट करने के आसान तरीके हैं. इसके बाद, ChromeOptions
ऑब्जेक्ट को ChromeDriver कंस्ट्रक्टर में पास किया जा सकता है:
ChromeOptions options = new ChromeOptions();
options.addExtensions(new File("/path/to/extension.crx"));
ChromeDriver driver = new ChromeDriver(options);
सेलेनियम के वर्शन 3.6.0 के बाद से, Java में ChromeOptions
क्लास, Capabilities
इंटरफ़ेस को भी लागू करती है. इसकी मदद से, ऐसी अन्य WebDriver सुविधाएं तय की जा सकती हैं जो ChromeDriver से जुड़ी नहीं हैं.
ChromeOptions options = new ChromeOptions();
// Add the WebDriver proxy capability.
Proxy proxy = new Proxy();
proxy.setHttpProxy("myhttpproxy:3337");
options.setCapability("proxy", proxy);
// Add a ChromeDriver-specific capability.
options.addExtensions(new File("/path/to/extension.crx"));
ChromeDriver driver = new ChromeDriver(options);
DesiredCapabilities का इस्तेमाल करना
DesiredCapabilities
का इस्तेमाल करने के लिए, आपको क्षमता का नाम और उसकी वैल्यू के बारे में जानना होगा. पूरी सूची यहां देखें.
Python
caps = webdriver.DesiredCapabilities.CHROME.copy()
caps['acceptInsecureCerts'] = True
driver = webdriver.Chrome(desired_capabilities=caps)
रूबी
caps = Selenium::WebDriver::Remote::Capabilities.chrome(
"goog:chromeOptions" => {"args" => [ "window-size=1000,800" ]})
driver = Selenium::WebDriver.for :chrome, desired_capabilities: caps
इस्तेमाल के सामान्य उदाहरण
कस्टम प्रोफ़ाइल का इस्तेमाल करना. इसे उपयोगकर्ता की डेटा डायरेक्ट्री भी कहा जाता है
डिफ़ॉल्ट रूप से, ChromeDriver हर सेशन के लिए एक नई अस्थायी प्रोफ़ाइल बनाएगा. कभी-कभी हो सकता है कि आप खास प्राथमिकताएं सेट करना चाहें या सिर्फ़ कस्टम प्रोफ़ाइल का इस्तेमाल करना चाहें. अगर पहली भूमिका है, तो 'chrome.prefs' क्षमता (इसके बारे में नीचे बताया गया है) का इस्तेमाल किया जा सकता है. इसकी मदद से, उन प्राथमिकताओं को तय किया जा सकता है जो Chrome के शुरू होने के बाद लागू होंगी. अगर बाद वाला विकल्प इस्तेमाल किया जाता है, तो Chrome के लिए user-data-dir
कमांड लाइन स्विच का इस्तेमाल करके, यह बताया जा सकता है कि किस प्रोफ़ाइल का इस्तेमाल करना है:
ChromeOptions options = new ChromeOptions();
options.addArguments("user-data-dir=/path/to/your/custom/profile");
आप Chrome को (कमांड-लाइन पर या ChromeDriver पर) चलाकर अपनी कस्टम प्रोफ़ाइल बना सकते हैं. ऐसा करने के लिए, user-data-dir
स्विच को किसी नई डायरेक्ट्री पर सेट करें. अगर पाथ मौजूद नहीं है, तो Chrome तय की गई जगह पर एक नई प्रोफ़ाइल बनाएगा. इसके बाद, प्रोफ़ाइल की सेटिंग में अपने हिसाब से बदलाव किया जा सकता है. साथ ही, ChromeDriver आने वाले समय में प्रोफ़ाइल का इस्तेमाल कर सकता है. यह देखने के लिए कि Chrome किस प्रोफ़ाइल का इस्तेमाल कर रहा है, ब्राउज़र में chrome://version खोलें.
Chrome को बड़ा करना शुरू करें
ChromeOptions options = new ChromeOptions();
options.addArguments("start-maximized");
Chrome की एक्ज़ीक्यूटेबल जगह को गैर-मानक जगह पर इस्तेमाल करना
ChromeOptions options = new ChromeOptions();
options.setBinary("/path/to/other/chrome/binary");
डायलॉग विंडो ब्लॉक करना
डिफ़ॉल्ट रूप से, ChromeDriver पॉप-अप विंडो को अनुमति देने के लिए, Chrome को कॉन्फ़िगर करता है. अगर आपको पॉप-अप ब्लॉक करना है (जैसे कि ChromeDriver से कंट्रोल न होने पर, Chrome को पहले जैसा करना), तो यह तरीका अपनाएं:
ChromeOptions options = new ChromeOptions();
options.setExperimentalOption("excludeSwitches",
Arrays.asList("disable-popup-blocking"));
डाउनलोड डायरेक्ट्री सेट करें
नीचे दिए गए कोड का इस्तेमाल करके, Chrome को कॉन्फ़िगर किया जा सकता है, ताकि किसी खास डायरेक्ट्री में फ़ाइलें डाउनलोड की जा सकें. हालांकि, आपको कुछ दूसरी चेतावनियों के बारे में जानकारी होनी चाहिए:
- Chrome, डाउनलोड करने के लिए कुछ डायरेक्ट्री इस्तेमाल करने की अनुमति नहीं देता. खास तौर पर, डाउनलोड डायरेक्ट्री के तौर पर डेस्कटॉप फ़ोल्डर का इस्तेमाल नहीं किया जा सकता. Linux पर, डाउनलोड करने के लिए होम डायरेक्ट्री का भी इस्तेमाल नहीं किया जा सकता. क्योंकि निषिद्ध डायरेक्ट्री की सटीक सूची में बदलाव हो सकता है, इसलिए यह सुझाव दिया जाता है कि आप एक ऐसी डायरेक्ट्री का इस्तेमाल करें जिसका सिस्टम के लिए कोई विशेष मतलब नहीं है.
- ChromeDriver, डाउनलोड पूरा होने का इंतज़ार नहीं करता. अगर आप ड्राइवर.quit() को जल्द ही कॉल करते हैं, तो हो सकता है कि डाउनलोड पूरा होने से पहले ही Chrome बंद हो जाए.
- रिलेटिव पाथ हमेशा काम नहीं करते हैं. सबसे अच्छे नतीजे पाने के लिए, इसके बजाय पूरा पाथ इस्तेमाल करें.
- Windows पर, पाथ सेपरेटर के तौर पर "" का इस्तेमाल करें. Windows पर, "/" का इस्तेमाल करना सही नहीं है.
ChromeOptions options = new ChromeOptions();
Map<String, Object> prefs = new HashMap<String, Object>();
prefs.put("download.default_directory", "/directory/path");
options.setExperimentalOption("prefs", prefs);
पहचानी गई क्षमताएं
ChromeDriver से स्वीकार की गई स्टैंडर्ड क्षमताओं के बारे में जानने के लिए, कृपया Selenium के दस्तावेज़ और W3C WebDriver स्टैंडर्ड देखें. यहां हम सिर्फ़ Chrome से जुड़ी क्षमताओं की सूची बना रहे हैं.
ChromeOptions
ऑब्जेक्ट
Chrome से जुड़ी ज़्यादातर सुविधाएं ChromeOptions
ऑब्जेक्ट की मदद से सार्वजनिक की जाती हैं. कुछ भाषाओं में, इसे ChromeOptions
क्लास के ज़रिए लागू किया जाता है. दूसरी भाषाओं में, उन्हें goog:chromeOptions
डिक्शनरी के तहत ज़रूरत के मुताबिक सेव किया जाता है.
perfLoggingPrefs
ऑब्जेक्ट
PerfLoggingPrefs डिक्शनरी का फ़ॉर्मैट नीचे दिया गया है (सभी कुंजियां ज़रूरी नहीं हैं):
नाम | Type | डिफ़ॉल्ट | ब्यौरा |
---|---|---|---|
enableNetwork
|
boolean | सही | Network डोमेन से इवेंट इकट्ठा किए जाएं या नहीं. |
enablePage
|
boolean | सही | पेज डोमेन से इवेंट इकट्ठा किए जाएं या नहीं. |
traceCategories
|
स्ट्रिंग | (खाली) | Chrome ट्रेस करने की कैटगरी की कॉमा-सेपरेटेड स्ट्रिंग, जिसके लिए ट्रेस इवेंट इकट्ठा किए जाने चाहिए. बिना जानकारी वाली या खाली स्ट्रिंग, ट्रेस करने की सुविधा बंद कर देती है. |
bufferUsageReportingInterval
|
धनात्मक पूर्णांक | 1000 | DevTools ट्रेस बफ़र इस्तेमाल के इवेंट के बीच मिलीसेकंड की अनुरोध की संख्या. उदाहरण के लिए, अगर 1,000 है, तो हर सेकंड में एक बार, DevTools यह रिपोर्ट करेगा कि ट्रेस बफ़र कितना भरा हुआ है. अगर किसी रिपोर्ट से पता चलता है कि बफ़र का 100% इस्तेमाल हुआ है, तो चेतावनी दी जाएगी. |
वापस दी गई क्षमताएं
यह उन सभी सुविधाओं की सूची है जो Chrome की खास सुविधाओं के लिए उपलब्ध हैं. (यानी, नया सेशन बनाने पर ChromeDriver क्या दिखाता है)
नाम | टाइप | ब्यौरा |
---|---|---|
chrome.chromedriverVersion
|
स्ट्रिंग | ChromeDriver का वर्शन |
userDataDir
|
स्ट्रिंग | उस उपयोगकर्ता डेटा डायरेक्ट्री का पाथ जिसे Chrome इस्तेमाल कर रहा है. ध्यान दें, यह 'chrome' शब्दकोश के अंदर है |