क्रोम विकल्प और वांछित क्षमताएँ Selenium वेबड्राइवर

क्रोम विकल्प वर्ग क्या है?

RSI क्रोमऑप्शन्स क्लास में एक अवधारणा है Selenium Chrome ड्राइवर के विभिन्न गुणों में हेरफेर करने के लिए WebDriver। Chrome विकल्प वर्ग का उपयोग आम तौर पर Chrome ड्राइवर सत्रों को अनुकूलित करने के लिए वांछित क्षमताओं के साथ किया जाता है। यह आपको विभिन्न ऑपरेशन करने में मदद करता है जैसे कि Chrome को अधिकतम मोड में खोलना, मौजूदा एक्सटेंशन को अक्षम करना, पॉप-अप को अक्षम करना, आदि।

उदाहरण:

नीचे दिया गया उदाहरण ChromeOptions क्लास का उपयोग करके Chrome ब्राउज़र को अधिकतम मोड में खोलने का तरीका दिखाता है। हमें वेब ड्राइवर आरंभीकरण में ChromeOptions क्लास का एक उदाहरण पास करना होगा।

ChromeOptions options = new ChromeOptions()
options.addArgument("start-maximized");
ChromeDriver driver = new ChromeDriver(options);

नीचे ChromeOptions वर्ग के लिए उपलब्ध और सबसे अधिक उपयोग किए जाने वाले तर्कों की सूची दी गई है

  • प्रारंभ-अधिकतम: Chrome को अधिकतम मोड में खोलता है
  • गुप्त: Chrome को गुप्त मोड में खोलता है
  • मुखिया रहित: Chrome को हेडलेस मोड में खोलता है
  • अक्षम-एक्सटेंशन: क्रोम ब्राउज़र पर मौजूदा एक्सटेंशन को अक्षम करता है
  • पॉपअप-ब्लॉकिंग अक्षम करें: क्रोम ब्राउज़र पर प्रदर्शित पॉप-अप को अक्षम करता है
  • डिफ़ॉल्ट ब्राउज़र बनाएं: Chrome को डिफ़ॉल्ट ब्राउज़र बनाता है
  • संस्करण: क्रोम ब्राउज़र संस्करण प्रिंट करता है
  • सूचना-पट्टी अक्षम करें: Chrome को यह सूचना प्रदर्शित करने से रोकता है कि 'Chrome को स्वचालित सॉफ़्टवेयर द्वारा नियंत्रित किया जा रहा है

वांछित क्षमता वर्ग

वांछित क्षमता वर्ग वेब ड्राइवर्स के कई गुणों को संशोधित करने के लिए उपयोग किया जाता है। यह वेब ड्राइवर्स के अलग-अलग गुणों जैसे ब्राउज़र नाम, ब्राउज़र प्लेटफ़ॉर्म आदि को बदलने के लिए कुंजी-मूल्य जोड़े प्रदान करता है। वांछित क्षमता वर्ग की एक सामान्य विधि setCapability विधि है। इसका उपयोग अधिकतर के साथ किया जाता है Selenium ग्रिड, जहां एक ही परीक्षण मामले को विभिन्न ब्राउज़रों पर निष्पादित करने की आवश्यकता होती है।

उदाहरण:

नीचे दिया गया उदाहरण क्रोम वर्ग के लिए वांछित क्षमताओं का उपयोग करके क्रोम ब्राउज़र को डिफ़ॉल्ट रूप से वेबसाइटों पर SSL प्रमाणपत्र स्वीकार करने में सक्षम करने का तरीका दिखाता है।

// Create an object of desired capabilities class with Chrome driver
DesiredCapabilities SSLCertificate = DesiredCapabilities.chrome();
// Set the pre defined capability – ACCEPT_SSL_CERTS value to true
SSLCertificate.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);
// Open a new instance of chrome driver with the desired capability
WebDriver driver = new ChromeDriver(SSLCertificate);

नीचे सबसे अधिक प्रयुक्त पूर्व-परिभाषित क्षमता प्रकार दिए गए हैं।

क्षमता का नाम विवरण
ACCEPT_SSL_प्रमाणपत्र यह गुण ब्राउज़र को डिफ़ॉल्ट रूप से SSL प्रमाणपत्र स्वीकार करने के लिए कहता है
प्लेटफ़ॉर्म_नाम इस प्रॉपर्टी का उपयोग वेब साइट तक पहुंचने के लिए उपयोग किए जाने वाले ऑपरेटिंग सिस्टम प्लेटफ़ॉर्म को सेट करने के लिए किया जाता है
ब्राउज़र_नाम इस प्रॉपर्टी का उपयोग वेब ड्राइवर इंस्टेंस के लिए ब्राउज़र नाम सेट करने के लिए किया जाता है
VERSION इस प्रॉपर्टी का उपयोग ब्राउज़र संस्करण सेट करने के लिए किया जाता है

Adblocker एक्सटेंशन के लिए Chrome विकल्प

क्रोम ब्राउज़र के एडब्लॉकर एक्सटेंशन को क्रोमड्राइवर विकल्प और वांछित क्षमता वर्ग का उपयोग करके नियंत्रित किया जा सकता है। नीचे एक्सेस करने के चरण दिए गए हैं AdBlockक्रोम ब्राउज़र पर वांछित क्षमता वर्ग का उपयोग करके .er एक्सटेंशन स्थापित करें।

चरण 1) AdBlockChrome विकल्प वर्ग का उपयोग करने से पहले Chrome ब्राउज़र पर er एक्सटेंशन इंस्टॉल होना चाहिए

चरण 2) Extracसीआरएक्स फ़ाइल के अनुरूप AdBlockhttp://crxex के माध्यम से er एक्सटेंशनtracटोर.कॉम/

चरण 3) डाउनलोड की गई CRX फ़ाइल पथ को Chrome विकल्प वर्ग में पास करें

चरण 4) वांछित क्षमता वर्ग और क्रोम विकल्पों का उपयोग करके वेब ड्राइवर को इंस्टेंसेट करें Selenium वस्तु

उदाहरण:

नीचे दिया गया उदाहरण दर्शाता है कि क्रोम विकल्प और वांछित क्षमता वर्ग का उपयोग करके क्रोम ब्राउज़र पर विज्ञापन अवरोधक एक्सटेंशन को कैसे सक्रिय किया जाए।

ChromeOptions options = new ChromeOptions();
options.addExtensions(new File("Path to CRX File"));
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability(ChromeOptions.CAPABILITY, options);
ChromeDriver driver = new ChromeDriver(capabilities);

Extracटी सीआरएक्स फ़ाइल

नीचे दिए गए चरण एक्स की प्रक्रिया को दर्शाते हैं।tracवेबसाइट के माध्यम से विज्ञापन अवरोधक के जरिए सीआरएक्स फाइल को ब्लॉक करना – http://crxextractor.com/

चरण 1) http://crxextractor.com/ और स्टार्ट बटन पर क्लिक करें

Extracटी सीआरएक्स फ़ाइल

चरण 2) टेक्स्टबॉक्स के नीचे क्रोम एक्सटेंशन - एड ब्लॉकर यूआरएल डालें। क्रोम वेब स्टोर पर एडब्लॉक का यूआरएल है https://chrome.google.com/webstore/detail/adblock-%E2%80%94-best-ad-blocker/gighmmpiobklfepjocnamgkkbiglidom

और ओके पर क्लिक करें

Extracटी सीआरएक्स फ़ाइल

चरण 3) ओके बटन पर क्लिक करने पर, बटन का लेबल नीचे दिए अनुसार Get .CRX में बदल जाएगा। Get .CRX बटन पर क्लिक करें, एक्सटेंशन से संबंधित CRX फ़ाइल डाउनलोड हो जाएगी

Extracटी सीआरएक्स फ़ाइल

चरण 4) फ़ाइल को स्थानीय मशीन पर सेव करें, सेव किए गए पथ का नोट बना लें। अगला चरण सेव किए गए पथ को Chrome विकल्प क्लास में पास करना है

नमूना Code:

  1. आपको यहां विज्ञापन दिखाई देंगे https://demo.guru99.com/ नीचे के अनुसार

Extracटी सीआरएक्स फ़ाइल

  1. - AdBlockक्रोम ब्राउज़र पर सक्षम एक्सटेंशन को अक्षम किया जाना चाहिए
package adblock;
import java.io.File;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
import org.openqa.selenium.remote.DesiredCapabilities;


public class AdblockDemo {
public static void main(String[] args)  {
	
	System.setProperty("webdriver.chrome.driver","X://chromedriver.exe");		
	ChromeOptions options = new ChromeOptions();
	options.addExtensions(new File("X://extension_3_40_1_0.crx")); 
	DesiredCapabilities capabilities = new DesiredCapabilities();
	capabilities.setCapability(ChromeOptions.CAPABILITY, options);
	options.merge(capabilities);
	ChromeDriver driver = new ChromeDriver(options);
	driver.get("https://demo.guru99.com/test/simple_context_menu.html");
	driver.manage().window().maximize();
	//driver.quit();
	}
	
}

Code व्याख्या:

  1. प्रारंभ में, आपको सेट प्रॉपर्टी विधि का उपयोग करके chromedriver.exe फ़ाइल का पथ सेट करना होगा क्योंकि आप परीक्षण के लिए क्रोम ब्राउज़र का उपयोग कर रहे हैं
  2. एक्सटेंशन विधि जोड़ने के लिए आपको CRX फ़ाइल का पथ सेट करना होगा
  3. फिर आपको Chrome Desired Capabilities का एक ऑब्जेक्ट बनाना होगा Selenium क्लास और इसे वेब ड्राइवर इंस्टेंस में पास करें। Selenium 3.8.1 संस्करण में, ड्राइवर क्षमता वर्ग को हटा दिया गया है और आपको Chrome ड्राइवर कन्स्ट्रक्टर में तर्क के रूप में इसे पास करने से पहले क्षमता ऑब्जेक्ट को Chrome विकल्प ऑब्जेक्ट के साथ मर्ज करना होगा
  4. यूआरएल खोलें – https://demo.guru99.com/test/simple_context_menu.html विज्ञापन अवरोधक एक्सटेंशन सक्षम के साथ
  5. ब्राउज़र को अधिकतम करें और बंद करें

नोट: हम सक्षम बना रहे हैं AdBlockएर एक्सटेंशन क्रोम ब्राउज़र पर एडब्लॉकर एक्सटेंशन को मैन्युअल रूप से सक्षम करने के बजाय ऑटोमेशन स्क्रिप्ट के माध्यम से क्रोम ब्राउज़र पर। CRX फ़ाइल ऑटोमेशन स्क्रिप्ट का उपयोग करके विज्ञापन अवरोधक एक्सटेंशन तक पहुँचने का एक तरीका है

आउटपुट:

क्रोम ब्राउज़र सक्षम हो जाएगा AdBlockएर एक्सटेंशन नीचे दिए अनुसार बिना किसी विज्ञापन के सक्षम है

Extracटी सीआरएक्स फ़ाइल

गुप्त मोड के लिए Chrome विकल्प

पूर्व-निर्धारित तर्क का उपयोग करके क्रोम विकल्पों का उपयोग गुप्त मोड के लिए किया जा सकता है -गुप्त.

नीचे इसे पूरा करने के लिए नमूना कोड दिया गया है।

नमूना Code:

package test;
import java.io.File;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
import org.openqa.selenium.remote.DesiredCapabilities;

public class Incognito{
public static void main(String[] args) {
	// TODO Auto-generated method stub
	System.setProperty("webdriver.chrome.driver","X://chromedriver.exe");
	ChromeOptions options = new ChromeOptions();
	options.addArguments("--incognito");
	DesiredCapabilities capabilities = new DesiredCapabilities();
	capabilities.setCapability(ChromeOptions.CAPABILITY, options);
	options.merge(capabilities);
	ChromeDriver driver = new ChromeDriver(options);		
	driver.get("https://demo.guru99.com/test/simple_context_menu.html");
	driver.manage().window().maximize();		
	//driver.quit();
	}
	}

Code व्याख्या:

  1. प्रारंभ में, आपको सेट प्रॉपर्टी विधि का उपयोग करके chromedriver.exe फ़ाइल का पथ सेट करना होगा क्योंकि आप परीक्षण के लिए क्रोम ब्राउज़र का उपयोग कर रहे हैं
  2. फिर आपको क्रोम विकल्प वर्ग का एक ऑब्जेक्ट बनाना होगा और इसे वेब ड्राइवर इंस्टेंस में पास करना होगा। चूँकि हम क्रोम ब्राउज़र को गुप्त मोड में खोलना चाहते हैं, इसलिए आपको क्रोम विकल्प वर्ग में तर्क – गुप्त को पास करना होगा।
  3. इसके बाद, Desired Capabilities क्लास का एक ऑब्जेक्ट बनाएं और मर्ज विधि का उपयोग करके Desired Capabilities क्लास ऑब्जेक्ट को Chrome विकल्प क्लास ऑब्जेक्ट के साथ मर्ज करें
  4. आपको Chrome Driver क्लास का एक ऑब्जेक्ट बनाना होगा और Chrome Options ऑब्जेक्ट को तर्क के रूप में पास करना होगा
  5. अंत में, हमें URL पास करना होगा – https://demo.guru99.com/test/simple_context_menu.html driver.get विधि के लिए
  6. ब्राउज़र को अधिकतम करें और बंद करें

आउटपुट:

क्रोम ब्राउज़र विंडो नीचे दिए अनुसार गुप्त मोड में खुलेगी

गुप्त मोड के लिए Chrome विकल्प

हेडलेस क्रोम के लिए क्रोम विकल्प

हेडलेस ब्राउज़र बैकग्राउंड में चलता है। आपको ब्राउज़र GUI या उस पर संचालित किए जाने वाले ऑपरेशन नहीं दिखेंगे।

क्रोम ब्राउज़र को हेडलेस मोड में चलाने के विकल्प पूर्वनिर्धारित तर्कों का उपयोग करके प्राप्त किए जा सकते हैं -नेतृत्वहीन.

इसे पूरा करने के लिए नमूना कोड नीचे दिया गया है।

उदाहरण:

package test;
import java.io.File;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
import org.openqa.selenium.remote.DesiredCapabilities;


public class HeadlessModeDemo {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		System.setProperty("webdriver.chrome.driver","X://chromedriver.exe");
		ChromeOptions options = new ChromeOptions();
		options.addArguments("--headless");
		DesiredCapabilities capabilities = new DesiredCapabilities();
		capabilities.setCapability(ChromeOptions.CAPABILITY, options);
		options.merge(capabilities);
		ChromeDriver driver = new ChromeDriver(options);		
		driver.get("https://demo.guru99.com/");
		driver.manage().window().maximize();
		String title = driver.getTitle();
		System.out.println("Page Title: " +title);
		driver.quit();
		}


}

Code व्याख्या:

  1. प्रारंभ में, आपको सेट प्रॉपर्टी विधि का उपयोग करके chromedriver.exe फ़ाइल का पथ सेट करना होगा क्योंकि आप परीक्षण के लिए क्रोम ब्राउज़र का उपयोग कर रहे हैं
  2. इसके बाद, Chrome Options क्लास का एक ऑब्जेक्ट बनाएँ और इसे वेब ड्राइवर इंस्टेंस में पास करें। चूँकि हम Chrome ब्राउज़र को हेडलेस मोड में खोलना चाहते हैं, इसलिए हमें Chrome Options क्लास में तर्क –headless पास करना होगा।
  3. DesiredCapabilities Chrome क्लास का एक ऑब्जेक्ट बनाएं और मर्ज विधि का उपयोग करके Desired Capabilities क्लास ऑब्जेक्ट को Chrome Options क्लास ऑब्जेक्ट के साथ मर्ज करें
  4. Chrome Driver क्लास का ऑब्जेक्ट बनाएं और Chrome विकल्प पास करें Selenium तर्क के रूप में वस्तु
  5. अंत में, हमें URL पास करना होगा – https://demo.guru99.com/ driver.get विधि के लिए
  6. पृष्ठ का शीर्षक प्रिंट करें और ब्राउज़र बंद करें

उत्पादन

उपरोक्त कोड के लिए ब्राउज़र दिखाई नहीं देगा क्योंकि क्रोम हेडलेस मोड में काम करेगा। पेज का शीर्षक नीचे दिए अनुसार लाया और प्रदर्शित किया जाएगा।

हेडलेस क्रोम के लिए क्रोम विकल्प

सारांश

  • Selenium क्रोम विकल्प वर्ग का उपयोग क्रोम ड्राइवर के विभिन्न गुणों में हेरफेर करने के लिए किया जाता है
  • वांछित क्रोम क्षमता वर्ग वेब ड्राइवर के व्यक्तिगत गुणों जैसे ब्राउज़र नाम, ब्राउज़र प्लेटफ़ॉर्म आदि को संशोधित करने के लिए कुंजी-मूल्य जोड़े का एक सेट प्रदान करता है।
  • Chrome ब्राउज़र के किसी भी एक्सटेंशन को नियंत्रित करने के लिए, उस एक्सटेंशन से संबंधित CRX फ़ाइल को निष्पादित करना आवश्यक है।tracइसे क्रोम ऑप्शंस क्लास में जोड़ा जाना चाहिए।
  • –incognito और –headless, Chrome विकल्प वर्ग द्वारा प्रदान किए गए पूर्वनिर्धारित तर्क हैं, जो Chrome ब्राउज़र को गुप्त मोड और हेडलेस मोड में उपयोग करने के लिए हैं

इस पोस्ट को संक्षेप में इस प्रकार लिखें: