वांछित क्षमताएं Selenium वेबड्राइवर

⚡ स्मार्ट सारांश

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

  • 🔘 परिभाषा: ब्राउज़र, संस्करण, प्लेटफ़ॉर्म और ड्राइवर पथ को दर्शाने वाले कुंजी-मान युग्म।
  • उद्देश्य: यह एक ही सूट ब्राउज़र, ऑपरेटिंग सिस्टम और मोबाइल उपकरणों पर चलता है।
  • तरीके: setCapability(), getCapability(), setBrowserName(), setVersion() और setPlatform() वातावरण का वर्णन करते हैं।
  • 🧪 उदाहरण: इंटरनेट एक्सप्लोरर के इस विस्तृत विवरण में ड्राइवर-पाथ त्रुटि और उसके समाधान को दर्शाया गया है।
  • आधुनिक समकक्ष: Selenium 4 ब्राउज़र ऑप्शंस क्लास में समान सेटिंग्स रखता है।

वांछित क्षमताएं Selenium वेबड्राइवर

वांछित क्षमताएं क्या हैं?

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

  • वांछित क्षमता का उपयोग ड्राइवर इंस्टैंस को कॉन्फ़िगर करने के लिए भी किया जा सकता है Selenium वेबड्राइवर.
  • हम ड्राइवर इंस्टेंस को इस प्रकार कॉन्फ़िगर कर सकते हैं FirefoxDriver, ChromeDriver, InternetExplorerDriver को वांछित क्षमताओं का उपयोग करके चलाएँ।

संस्करण नोट: Selenium 4 यह ब्राउज़र विकल्प कक्षाओं - ChromeOptions - के साथ DesiredCapabilities को प्रतिस्थापित करता है। FirefoxOptions, EdgeOptions, InternetExplorerOptions। नीचे दिए गए उदाहरणों में मूल सिंटैक्स को बरकरार रखा गया है।

हमें वांछित क्षमताओं की आवश्यकता क्यों है?

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

इस पृष्ठ के बाद के भाग में वर्णित DesiredCapabilities क्लास की setCapability विधि का उपयोग निम्नलिखित स्थितियों में किया जा सकता है: Selenium ग्रिड। इसका उपयोग एक कार्य करने के लिए किया जाता है। समानांतर निष्पादन विभिन्न मशीन कॉन्फ़िगरेशन पर।

उदाहरण: ग्रिड (नीचे दिखाया गया है)।

Selenium वांछित क्षमताओं द्वारा संचालित ग्रिड सेटअप

इसका उपयोग ब्राउज़र गुण (उदाहरण: क्रोम, IE), प्लेटफ़ॉर्म नाम (उदाहरण: लिनक्स, Windows) जिनका उपयोग निष्पादन के दौरान किया जाता है परीक्षण का मामला.

मोबाइल स्वचालन के मामले में, जब हम विभिन्न प्रकार के मोबाइल उपकरणों पर परीक्षण करते हैं, तो मोबाइल प्लेटफ़ॉर्म (जैसे iOS, Android) प्लेटफ़ॉर्म संस्करण (उदाहरण 3.x,4.x इन Android) जम सकता है।

नीचे दिए गए एमुलेटर उदाहरण में प्लेटफ़ॉर्म सेट एंड्रॉइड है और प्लेटफ़ॉर्म संस्करण सेट आइसक्रीम सैंडविच (4.x) है।

मोबाइल एमुलेटर की क्षमताएं इस प्रकार सेट की गई हैं Android प्लेटफ़ॉर्म और संस्करण 4.x

वांछित क्षमताएं निम्नलिखित मामलों में अधिक उपयोगी होती हैं:

  • मोबाइल एप्लिकेशन स्वचालन में, जहां ब्राउज़र गुण और डिवाइस गुण सेट किए जा सकते हैं।
  • In Selenium ग्रिड का उपयोग तब किया जाता है जब हम विभिन्न ऑपरेटिंग सिस्टम और संस्करणों वाले अलग-अलग ब्राउज़र पर टेस्ट केस चलाना चाहते हैं।

वांछित क्षमताओं के प्रकार विधियाँ

यहां हम विभिन्न डिज़ायर्ड कैपेबिलिटी मेथड्स देखेंगे और उनमें से एक, सेटकैपेबिलिटी() मेथड का उपयोग कैसे करें, यह भी जानेंगे।

#१) getBrowserName()

public java.lang.String getBrowserName()

#2) सेटब्राउज़रनाम()

public void setBrowserName(java.lang.String browserName)

#3) getVersion()

public java.lang.String getVersion()

#4) सेटवर्जन()

public void setVersion(java.lang.String version)

#5) getPlatform()

public Platform getPlatform()

#6) सेटप्लेटफॉर्म()

public Platform setPlatform()

#7) getCapability() विधि

DesiredCapabilities वर्ग की getCapability() विधि का उपयोग सिस्टम में वर्तमान में उपयोग में आने वाली क्षमता को प्राप्त करने के लिए किया जा सकता है।

public java.lang.Object getCapability(java.lang.String capabilityName)

#8) setCapability() विधि

डिज़ायर्ड कैपेबिलिटीज़ क्लास का setCapability() मेथड टेस्ट एनवायरनमेंट की प्रॉपर्टीज़ जैसे डिवाइस का नाम, ऑपरेटिंग सिस्टम का नाम और वर्शन, ब्राउज़र का नाम और वर्शन, और टेस्ट किए जा रहे ऐप का एब्सोल्यूट पाथ (या ऐप की .apk फ़ाइल) सेट करने के लिए उपयोग किया जाता है। Android परीक्षण के अंतर्गत ऐप), ऐप गतिविधि (में Android) और ऐपपैकेज (में Java).

“सेटकैपेबिलिटी विधि” में Java निम्नलिखित घोषणाएं हैं:

setCapability : public void setCapability(java.lang.String capabilityName,boolean value)
setCapability  :public void setCapability(java.lang.String capabilityName,java.lang.String value)
setCapability  :public void setCapability(java.lang.String capabilityName,Platform value)
setCapability  :public void setCapability(java.lang.String key,java.lang.Object value)

क्षमता सेट करें Selenium उदाहरण

आइए एक उदाहरण पर विचार करें जहां हम इंटरनेट एक्सप्लोरर ब्राउज़र पर www.gmail.com वेबसाइट खोलने के लिए अपने टेस्ट केस को चलाना चाहते हैं। Selenium वेबड्राइवर.

कोड निम्नलिखित है.

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.ie.InternetExplorerDriver;

public class IEtestforDesiredCapabilities {
  
 public static void main(String[] args) {
  
WebDriver driver = new InternetExplorerDriver();
 driver.manage().window().maximize();
 driver.get("http://gmail.com");
  
 driver.quit();
 }
  
}

अब इस कोड को चलाएँ Eclipse और कंसोल की जांच करें.

आउटपुट:

उपरोक्त कोड को निष्पादित करने पर निम्न त्रुटि उत्पन्न होगी। यह त्रुटि इसलिए होती है क्योंकि ब्राउज़र ड्राइवर (उपरोक्त उदाहरण में IE) का पथ सेट नहीं किया गया है। ब्राउज़र को खोजा नहीं जा सका। Selenium कोड।

The path to the driver executable must be set by the webdriver.ie.driver system property; formore information, see http://code.google.com/p/selenium/wiki/InternetExplorerDriver. The latest version can be downloaded from http://code.google.com/p/selenium/downloads/list

Dec 11, 201212:59:43PM org.openqa.selenium.ie.InternetExplorerDriverServer initializeLib

WARNING: This method of starting the IE driver is deprecated and will be removed in selenium 2.26. Please download the IEDriverServer.exe from http://code.google.com/p/selenium/downloads/list and ensure that it is in your PATH.

उपाय:

उपरोक्त समस्या का समाधान त्रुटि के चेतावनी अनुभाग में ही दिया गया है।

  1. 32बिट या 64बिट के लिए इंटरनेट एक्सप्लोरर ड्राइवर स्टैंडअलोन सर्वर डाउनलोड करें।
  2. ड्राइवर को सिस्टम में उपयुक्त स्थान पर सहेजें।
  3. System.setProperty विधि का उपयोग करके ड्राइवर का पथ निर्धारित करें। इसका उपयोग वेबड्राइवर प्रॉपर्टी के साथ IE ड्राइवर को सेट करने के लिए किया जाता है। यह सिस्टम लोकेशन में संग्रहीत ड्राइवर निष्पादन योग्य फ़ाइल का पता लगाने में मदद करता है। (उदाहरण: "C:\IEDriverLocation\IEDriver.exe")

संस्करण नोट: Selenium 4.6 और उसके बाद के संस्करण ड्राइवर को स्वचालित रूप से हल करते हैं Selenium मैनेजर, इसलिए System.setProperty वैकल्पिक है। नीचे दिया गया पुराना कोड अपरिवर्तित है।

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.ie.InternetExplorerDriver;
import org.openqa.selenium.remote.DesiredCapabilities;

public class IEtestforDesiredCapabilities {
  
 public static void main(String[] args) {

//it is used to define IE capability 
 DesiredCapabilities capabilities = DesiredCapabilities.internetExplorer();
  
capabilities.setCapability(CapabilityType.BROWSER_NAME, "IE");
capabilities.setCapability(InternetExplorerDriver.
  INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS,true);


System.setProperty("webdriver.ie.driver", "C:\\IEDriverServer.exe");
  
 //it is used to initialize the IE driver
 WebDriver driver = new InternetExplorerDriver(capabilities);
  
 driver.manage().window().maximize();

 driver.get("http://gmail.com");
  
 driver.quit();
 }
  
}

Code स्पष्टीकरण:

उपरोक्त कोड में,

  • आयात कथन आवश्यक पैकेजों को आयात करते हैं। Selenium वेबड्राइवर, इंटरनेट एक्सप्लोरर ड्राइवर के लिए आवश्यक पैकेज और वांछित क्षमताओं के लिए पैकेज।
  • setCapability विभिन्न क्षमताओं को इनपुट चर के रूप में लेता है, जिनका उपयोग वेब ड्राइवर द्वारा वांछित वातावरण में अनुप्रयोग को लॉन्च करने के लिए किया जाता है।
  • setProperty का उपयोग ड्राइवर के स्थान का पथ निर्धारित करने के लिए किया जाता है। इसके बाद WebDriver आवश्यक ड्राइवर का पता लगाता है।
  • Gmail वेबसाइट को इंटरनेट एक्सप्लोरर ब्राउज़र में "गेट" विधि का उपयोग करके खोला जाता है।

आउटपुट:

इंटरनेट एक्सप्लोरर ब्राउज़र पर टेस्ट केस सफलतापूर्वक चलेगा। Selenium वेबड्राइवर.

अक्सर पूछे जाने वाले प्रश्न

यह पिछली संगतता के लिए मौजूद है लेकिन प्रभावी रूप से अप्रचलित हो चुका है। Selenium 4 रूट सत्र W3C-अनुरूप ब्राउज़र विकल्प ऑब्जेक्ट के माध्यम से होते हैं, इसलिए नए सुइट्स को विकल्पों को प्राथमिकता देनी चाहिए।

क्रोम विकल्प, FirefoxOptions, EdgeOptions, SafariOptions और InternetExplorerOptions। प्रत्येक ऑब्जेक्ट सीधे संबंधित ड्राइवर कंस्ट्रक्टर या RemoteWebDriver में पास हो जाता है।

केवल browserName, browserVersion, platformName, acceptInsecureCerts, pageLoadStrategy, proxy, timeouts और unhandledPromptBehavior ही मानक हैं। इनके अलावा किसी भी चीज़ के लिए विक्रेता उपसर्ग (जैसे goog:chromeOptions) की आवश्यकता होती है।

Appium इसमें platformName, automationName, deviceName और app या appPackage के साथ-साथ appActivity की अपेक्षा की जाती है, ये सभी appium: उपसर्ग के साथ लिखे गए हों।

नहीं। से Selenium 4.6, Selenium प्रबंधक यह स्वचालित रूप से उपयुक्त ड्राइवर डाउनलोड करता है। इसे केवल तभी सेट करें जब आप किसी विशिष्ट ड्राइवर बिल्ड को पिन कर रहे हों।

क्लाउड विक्रेता ब्राउज़र, ऑपरेटिंग सिस्टम और डिवाइस आवंटित करने के लिए समान कुंजी-मान युग्मों को पढ़ते हैं, साथ ही विक्रेता-उपसर्गित अतिरिक्त जानकारी जैसे कि बिल्ड नाम भी शामिल करते हैं।

एआई मॉडल उत्पादन विश्लेषण और दोष इतिहास का विश्लेषण करके यह निर्धारित करते हैं कि किन ब्राउज़र, संस्करण और डिवाइस संयोजनों को कवरेज मिलना चाहिए, जिससे एक अनियंत्रित मैट्रिक्स को छोटा किया जा सके।

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

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