क्षमताएं ऐसे विकल्प होते हैं जिनका इस्तेमाल करके, ChromeDriver सेशन को पसंद के मुताबिक बनाया जा सकता है और कॉन्फ़िगर किया जा सकता है. इस पेज पर, ChromeDriver की सभी सुविधाओं और उन्हें इस्तेमाल करने के तरीके के बारे में बताया गया है.
WebDriver भाषा के एपीआई, 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);
Selenium के 3.6.0 वर्शन के बाद से, Java में ChromeOptions
क्लास में Capabilities
इंटरफ़ेस भी लागू होता है. इससे, आपको ChromeDriver के अलावा, WebDriver की अन्य सुविधाओं का इस्तेमाल करने की सुविधा मिलती है.
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)
Ruby
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 के शुरू होने के बाद लागू होने वाली सेटिंग तय की जा सकती हैं. पसंद के मुताबिक बनाई गई प्रोफ़ाइलों के लिए, 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://version
खोलें और देखें कि Chrome किस प्रोफ़ाइल का इस्तेमाल कर रहा है.
Chrome को बड़े स्क्रीन साइज़ में शुरू करना
start-maximized
स्विच का इस्तेमाल करके, Chrome को ज़्यादा से ज़्यादा साइज़ में खोलें:
ChromeOptions options = new ChromeOptions();
options.addArguments("start-maximized");
Chrome के किसी ऐसे एक्सीक्यूटेबल का इस्तेमाल करना जो स्टैंडर्ड लोकेशन में मौजूद न हो
ChromeOptions options = new ChromeOptions();
options.setBinary("/path/to/other/chrome/binary");
डायलॉग विंडो ब्लॉक करना
डिफ़ॉल्ट रूप से, ChromeDriver, Chrome को पॉप-अप विंडो दिखाने की अनुमति देने के लिए कॉन्फ़िगर करता है. अगर आपको पॉप-अप ब्लॉक करने हैं और Chrome को ChromeDriver के कंट्रोल में न होने पर, उसके सामान्य तरीके से काम करने की सुविधा वापस लानी है, तो यह तरीका अपनाएं:
ChromeOptions options = new ChromeOptions();
options.setExperimentalOption("excludeSwitches",
Arrays.asList("disable-popup-blocking"));
डाउनलोड डायरेक्ट्री सेट करना
नीचे दिए गए कोड का इस्तेमाल करके, Chrome को किसी खास डायरेक्ट्री में फ़ाइलें डाउनलोड करने के लिए कॉन्फ़िगर किया जा सकता है. हालांकि, आपको इन बातों का ध्यान रखना चाहिए:
- Chrome, डाउनलोड करने के लिए कुछ डायरेक्ट्री का इस्तेमाल करने की अनुमति नहीं देता. खास तौर पर, डेस्कटॉप फ़ोल्डर का इस्तेमाल डाउनलोड डायरेक्ट्री के तौर पर नहीं किया जा सकता. Linux पर, डाउनलोड करने के लिए होम डायरेक्ट्री का इस्तेमाल नहीं किया जा सकता. पाबंदी वाली डायरेक्ट्री की सटीक सूची में बदलाव हो सकता है. इसलिए, हमारा सुझाव है कि आप ऐसी यूनीक डायरेक्ट्री का इस्तेमाल करें जिसका सिस्टम के लिए कोई खास मतलब न हो.
- ChromeDriver, डाउनलोड पूरा होने का इंतज़ार अपने-आप नहीं करता. अगर
driver.quit()
को बहुत जल्द कॉल किया जाता है, तो हो सकता है कि डाउनलोड पूरा होने से पहले Chrome बंद हो जाए. - बेहतर नतीजे पाने के लिए, पूरे पाथ का इस्तेमाल करें. ऐसा इसलिए, क्योंकि रिलेटिव पाथ हमेशा काम नहीं करते.
- Windows पर,
\` as path separators.
/` का इस्तेमाल न करें.
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
डिक्शनरी का फ़ॉर्मैट यहां दिया गया है. सभी बटन इस्तेमाल करना ज़रूरी नहीं है:
लौटाए गए आइटम की सुविधाएं
यहां Chrome के लिए उपलब्ध सभी सुविधाओं की सूची दी गई है. दूसरे शब्दों में, यह सूची बताती है कि नया सेशन बनाने पर, ChromeDriver क्या दिखाता है.