क्षमताएं, ऐसे विकल्प हैं जिनका इस्तेमाल 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);
DesiredCaps का इस्तेमाल करना
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' का इस्तेमाल किया जा सकता है की सुविधा उपलब्ध है. इस सुविधा के बारे में नीचे बताया गया है. अगर बाद वाली प्रोफ़ाइल, तो user-data-dir
Chrome कमांड-लाइन स्विच का इस्तेमाल करके, Chrome को बताया जा सकता है कि उसे किस प्रोफ़ाइल का इस्तेमाल करना है:
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 अपने-आप ही इंतज़ार नहीं करता. अगर आपने drive.पॉइंट() को बहुत जल्दी कॉल किया है, तो हो सकता है कि डाउनलोड पूरा होने से पहले ही 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);
ऐसी सुविधाएं जिनके बारे में पता चलता है
स्टैंडर्ड वर्शन के लिए, कृपया Selenium के दस्तावेज़ और W3C WebDriver स्टैंडर्ड देखें ChromeDriver द्वारा स्वीकार की जाने वाली क्षमताएं. यहां हम सिर्फ़ Chrome के लिए बने खास सुविधाएं.
ChromeOptions
ऑब्जेक्ट
Chrome से जुड़ी ज़्यादातर सुविधाएं, ChromeOptions
के ज़रिए बिना अनुमति के सार्वजनिक की जाती हैं
ऑब्जेक्ट है. कुछ भाषाओं में, यह ChromeOptions
क्लास लागू करती है. तय सीमा में
अन्य भाषाओं के लिए उपलब्ध है, तो उन्हें यहां goog:chromeOptions
शब्दकोश में सेव किया जाता है
नई सुविधाएं चाहिए.
perfLoggingPrefs
ऑब्जेक्ट
perfLoggingPrefs शब्दकोश में इस तरह का फ़ॉर्मैट है (सभी कुंजियों का इस्तेमाल करना ज़रूरी नहीं है):
नाम | टाइप | डिफ़ॉल्ट | ब्यौरा |
---|---|---|---|
enableNetwork
|
बूलियन | सही | नेटवर्क डोमेन से इवेंट इकट्ठा करने हैं या नहीं. |
enablePage
|
बूलियन | सही | पेज डोमेन से इवेंट इकट्ठा करने हैं या नहीं. |
traceCategories
|
स्ट्रिंग | (खाली) | Chrome में ट्रेस करने की कैटगरी की कॉमा लगाकर अलग की गई स्ट्रिंग, जिसके लिए ट्रेस इवेंट इकट्ठा किए जाने चाहिए. बिना वैल्यू वाली या खाली स्ट्रिंग, ट्रेस करने की सुविधा को बंद कर देती है. |
bufferUsageReportingInterval
|
धनात्मक पूर्णांक | 1000 | DevTools ट्रेस के बफ़र के इस्तेमाल से जुड़े इवेंट के बीच, मिलीसेकंड की अनुरोध की गई संख्या. उदाहरण के लिए, अगर 1000 है, तो हर सेकंड में एक बार, DevTools यह रिपोर्ट करेगा कि ट्रेस बफ़र कितना भर गया है. अगर किसी रिपोर्ट में यह बताया जाता है कि बफ़र का इस्तेमाल 100% है, तो चेतावनी जारी की जाएगी. |
वापस दी गई क्षमताएं
यह उन सभी सुविधाओं की सूची है जो Chrome के लिए तय की गई हैं. (यानी, जब आप नया सेशन बनाते हैं, तो ChromeDriver क्या लौटाता है)
नाम | टाइप | ब्यौरा |
---|---|---|
chrome.chromedriverVersion
|
स्ट्रिंग | ChromeDriver का वर्शन |
userDataDir
|
स्ट्रिंग | उपयोगकर्ता डेटा डायरेक्ट्री का पाथ, जिसका इस्तेमाल Chrome कर रहा है; ध्यान दें, यह 'chrome' के अंदर है शब्दकोश |