Selenium वेबड्राइवर Java कार्यक्रम का उदाहरण

Selenium Java उदाहरण

ऊपर दिए Java पिछले ट्यूटोरियल में बनाए गए क्लास “myclass” का उपयोग करके, आइए एक वेबड्राइवर स्क्रिप्ट बनाने का प्रयास करें जो:

चरण १: लाना Mercury टूर्स का मुखपृष्ठ
चरण १: इसका शीर्षक सत्यापित करें
चरण १: तुलना का परिणाम प्रिंट करें
चरण १: संपूर्ण प्रोग्राम समाप्त करने से पहले इसे बंद कर दें।

Selenium वेबड्राइवर नमूना Code

ऊपर दिए गए परिदृश्य द्वारा प्रस्तुत तर्क के लिए नीचे वास्तविक WebDriver कोड दिया गया है

package newproject;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
//comment the above line and uncomment below line to use Chrome
//import org.openqa.selenium.chrome.ChromeDriver;
public class PG1 {


    public static void main(String[] args) {
        // declaration and instantiation of objects/variables
    	System.setProperty("webdriver.gecko.driver","C:\\geckodriver.exe");
		WebDriver driver = new FirefoxDriver();
		//comment the above 2 lines and uncomment below 2 lines to use Chrome
		//System.setProperty("webdriver.chrome.driver","G:\\chromedriver.exe");
		//WebDriver driver = new ChromeDriver();
    	
        String baseUrl = "https://demo.guru99.com/test/newtours/";
        String expectedTitle = "Welcome: Mercury Tours";
        String actualTitle = "";

        // launch Fire fox and direct it to the Base URL
        driver.get(baseUrl);

        // get the actual value of the title
        actualTitle = driver.getTitle();

        /*
         * compare the actual title of the page with the expected one and print
         * the result as "Passed" or "Failed"
         */
        if (actualTitle.contentEquals(expectedTitle)){
            System.out.println("Test Passed!");
        } else {
            System.out.println("Test Failed");
        }
       
        //close Fire fox
        driver.close();
    }

}

नोट: प्रारंभ Firefox 35, वेब ड्राइवर का उपयोग करने के लिए आपको मोज़िला द्वारा निर्मित गेको ड्राइवर का उपयोग करना होगा। Selenium 3.0, गेको और फ़ायरफ़ॉक्स में संगतता संबंधी समस्याएं हैं और उन्हें सही तरीके से सेट करना एक कठिन काम हो सकता है। अगर कोड काम नहीं करता है, तो डाउनग्रेड करें Firefox संस्करण 47 या उससे नीचे। वैकल्पिक रूप से, आप अपनी स्क्रिप्ट क्रोम पर चला सकते हैं। Selenium क्रोम के लिए बॉक्स से बाहर काम करता है। आपको अपनी स्क्रिप्ट को क्रोम या के साथ काम करने के लिए कोड की केवल 3 पंक्तियों को बदलने की आवश्यकता है Firefox

कोड की व्याख्या करना

पैकेज आयात करना

आरंभ करने के लिए, आपको निम्नलिखित दो पैकेज आयात करने होंगे:

  1. org.openqa.सेलेनियम.*- इसमें एक विशिष्ट ड्राइवर के साथ लोड किए गए नए ब्राउज़र को इंस्टैंसिएट करने के लिए आवश्यक WebDriver क्लास शामिल है
  2. org.openqa.selenium.फ़ायरफ़ॉक्स.Firefoxचालक – इसमें शामिल है Firefoxड्राइवर वर्ग को तत्काल बनाने की आवश्यकता है Firefox-विशिष्ट ड्राइवर को वेबड्राइवर वर्ग द्वारा इंस्टैंसिएट किए गए ब्राउज़र पर स्थापित करना

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

ऑब्जेक्ट्स और वेरिएबल्स को इंस्टैंशिएट करना

सामान्यतः, ड्राइवर ऑब्जेक्ट को इसी प्रकार से इंस्टैन्शिएट किया जाता है।

WebDriver driver = new FirefoxDriver();

A Firefoxबिना पैरामीटर वाले ड्राइवर वर्ग का अर्थ है कि डिफ़ॉल्ट Firefox प्रोफ़ाइल हमारे द्वारा लॉन्च किया जाएगा Java कार्यक्रम. डिफ़ॉल्ट Firefox प्रोफ़ाइल लॉन्च करने के समान है Firefox सुरक्षित मोड में (कोई एक्सटेंशन लोड नहीं है)।

सुविधा के लिए, हमने बेस URL और अपेक्षित शीर्षक को चर के रूप में सहेज लिया है।

ब्राउज़र सत्र शुरू करना

वेबड्राइवर प्राप्त() विधि का उपयोग एक नया ब्राउज़र सत्र शुरू करने के लिए किया जाता है और इसे उस URL पर निर्देशित करता है जिसे आप इसके पैरामीटर के रूप में निर्दिष्ट करते हैं।

driver.get(baseUrl);

वास्तविक पृष्ठ शीर्षक प्राप्त करें

WebDriver वर्ग में है शीर्षक प्राप्त करें() विधि जो हमेशा वर्तमान में लोड किए गए पृष्ठ का पृष्ठ शीर्षक प्राप्त करने के लिए उपयोग की जाती है।

actualTitle = driver.getTitle();

अपेक्षित और वास्तविक मूल्यों की तुलना करें

कोड का यह भाग बस एक बुनियादी का उपयोग करता है Java वास्तविक शीर्षक की अपेक्षित शीर्षक से तुलना करने के लिए if-else संरचना।

if (actualTitle.contentEquals(expectedTitle)){
            System.out.println("Test Passed!");
        } else {
            System.out.println("Test Failed");
        }

ब्राउज़र सत्र समाप्त करना

"बंद करे()” विधि का उपयोग ब्राउज़र विंडो को बंद करने के लिए किया जाता है।

driver.close();

संपूर्ण कार्यक्रम को समाप्त करना

यदि आप सभी ब्राउज़र विंडो को बंद किए बिना इस कमांड का उपयोग करते हैं, तो आपका पूरा Java प्रोग्राम समाप्त हो जाएगा, जबकि ब्राउज़र विंडो खुली रहेगी।

System.exit(0);

परीक्षण चला रहा है

इसमें कोड निष्पादित करने के दो तरीके हैं Eclipse आईडीई।

  1. On Eclipseके मेनू बार पर क्लिक करें भागो > भागो.
  2. दबाएँ कंट्रोल + F11 संपूर्ण कोड चलाने के लिए.

परीक्षण चला रहा है

यदि आपने सब कुछ सही ढंग से किया, Eclipse आउटपुट होगा “टेस्ट पास!”

परीक्षण चला रहा है

GUI तत्वों का पता लगाना

वेबड्राइवर में तत्वों का पता लगाना “findElement(By.सुनने का यंत्र())” विधि। कोड का “लोकेटर” भाग पहले चर्चा किए गए किसी भी लोकेटर के समान है Selenium आईडीई इन ट्यूटोरियल के अध्यायों को पढ़ें। वास्तव में, यह अनुशंसा की जाती है कि आप IDE का उपयोग करके GUI तत्वों का पता लगाएं और एक बार सफलतापूर्वक पहचान करने के बाद कोड को WebDriver पर निर्यात करें।

यहाँ एक है Selenium नमूना कोड जो किसी तत्व को उसकी आईडी से ढूँढता है। फेसबुक को बेस यूआरएल के रूप में उपयोग किया जाता है।

package newproject;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;

public class PG2 {
    public static void main(String[] args) {
    	System.setProperty("webdriver.gecko.driver","C:\\geckodriver.exe");
    	WebDriver driver = new FirefoxDriver();
        String baseUrl = "http://www.facebook.com";
        String tagName = "";
        
        driver.get(baseUrl);
        tagName = driver.findElement(By.id("email")).getTagName();
        System.out.println(tagName);
        driver.close();
        System.exit(0);
}
}

हम इस्तेमाल किया getTagName() विधिtracउस विशेष एलिमेंट के टैग नाम को प्रिंट करें जिसकी आईडी "ईमेल" है। चलाने पर, यह कोड "इनपुट" टैग नाम को सही ढंग से पहचान लेगा और उसे प्रिंट कर देगा। Eclipse'की कंसोल विंडो पर जाएँ।

GUI तत्वों का पता लगाना

तत्वों का पता लगाने के लिए सारांश

परिवर्तन विवरण नमूना
By.className “क्लास” विशेषता के मान के आधार पर तत्वों को ढूँढता है findElement(By.className(“someClassName”))
By.cssSelector ड्राइवर के अंतर्निहित CSS चयनकर्ता इंजन के आधार पर तत्वों को ढूँढता है findElement(By.cssSelector(“input#email”))
By.id तत्वों को उनके “id” विशेषता के मान से ढूँढता है findElement(By.id(“someId”))
 
द्वारा.linkText लिंक तत्व को उसके द्वारा प्रदर्शित सटीक पाठ के आधार पर ढूँढता है findElement(By.linkText(“पंजीकरण”))
 
नाम से “नाम” विशेषता के मान से तत्वों का पता लगाता है findElement(By.name(“someName”))
 
आंशिक लिंक टेक्स्ट द्वारा दिए गए लिंक टेक्स्ट वाले तत्वों का पता लगाता है findElement(By.partialLinkText(“REG”))
 
टैगनाम द्वारा तत्वों को उनके टैग नाम से ढूँढता है findElement(By.tagName(“div”))
 
.xpath द्वारा XPath के माध्यम से तत्वों का पता लगाता है findElement(By.xpath(“//html/body/div/table/tbody/tr/td[2]/table/
tbody/tr[4]/td/table/tbody/tr/td[2]/table/tbody/tr[2]/td[3]/ form/table/tbody/tr[5]”))

findElement(By.cssSelector()) के उपयोग पर नोट

By.cssSelector() “शामिल है” सुविधा का समर्थन नहीं करता है। इस पर विचार करें Selenium नीचे आईडीई कोड –

findElement(By.cssSelector()) के उपयोग पर नोट

In Selenium उपरोक्त आईडीई में, संपूर्ण परीक्षण पास हो गया। हालाँकि Selenium नीचे दिए गए WebDriver स्क्रिप्ट में, उसी परीक्षण ने एक त्रुटि उत्पन्न की क्योंकि By.cssSelector() विधि में उपयोग किए जाने पर WebDriver “contains” कीवर्ड का समर्थन नहीं करता है।

findElement(By.cssSelector()) के उपयोग पर नोट

कॉमन कमांड्स

वेब तत्वों को तत्काल बनाना

हर बार जब आप किसी विशेष तत्व तक पहुंचेंगे तो लंबे “driver.findElement(By.locator())” सिंटैक्स का उपयोग करने के बजाय, हम इसके लिए एक WebElement ऑब्जेक्ट को इंस्टेंटिएट कर सकते हैं। WebElement क्लास “org.openqa.selenium.*” पैकेज में समाहित है।

वेब तत्वों को तत्काल बनाना

किसी तत्व पर क्लिक करना

क्लिक करना शायद वेब तत्वों के साथ बातचीत करने का सबसे आम तरीका है। click() किसी भी तत्व पर क्लिक करने का अनुकरण करने के लिए निम्न विधि का उपयोग किया जाता है। Selenium Java उदाहरण से पता चलता है कि कैसे click() पर क्लिक करने के लिए इस्तेमाल किया गया था Mercury टूर्स के “साइन-इन” बटन पर क्लिक करें।

किसी तत्व पर क्लिक करना

click() विधि का उपयोग करते समय निम्नलिखित बातों का ध्यान रखना चाहिए।

  • यह कोई पैरामीटर/तर्क नहीं लेता है।
  • यदि लागू हो तो यह विधि स्वचालित रूप से नए पृष्ठ के लोड होने की प्रतीक्षा करती है।
  • जिस तत्व पर क्लिक किया जाना है, वह दृश्यमान होना चाहिए (ऊंचाई और चौड़ाई शून्य के बराबर नहीं होनी चाहिए)।

आदेश प्राप्त करें

Get कमांड पेज/एलिमेंट के बारे में कई महत्वपूर्ण जानकारी प्राप्त करते हैं। यहाँ कुछ महत्वपूर्ण “get” कमांड दिए गए हैं जिनसे आपको परिचित होना चाहिए।

कमानों प्रयोग
प्राप्त()

नमूना उपयोग:

  • यह स्वचालित रूप से एक नई ब्राउज़र विंडो खोलता है और आपके द्वारा कोष्ठकों में निर्दिष्ट पृष्ठ को लाता है।
  • यह इसका प्रतिरूप है Selenium आईडीई का "ओपन" कमांड.
  • पैरामीटर एक होना चाहिए तार वस्तु।
शीर्षक प्राप्त करें()

नमूना उपयोग:

  • किसी पैरामीटर की जरूरत नहीं
  • वर्तमान पृष्ठ का शीर्षक प्राप्त करता है
  • आरंभिक और अंतिम सफेद रिक्त स्थान काट दिए गए हैं
  • यदि पृष्ठ का कोई शीर्षक नहीं है तो शून्य स्ट्रिंग लौटाता है
पेजस्रोत प्राप्त करें()

नमूना उपयोग:

  • किसी पैरामीटर की जरूरत नहीं
  • पृष्ठ का स्रोत कोड स्ट्रिंग मान के रूप में लौटाता है
getCurrentUrl()

नमूना उपयोग:

  • किसी पैरामीटर की जरूरत नहीं
  • ब्राउज़र द्वारा देखे जा रहे वर्तमान URL का प्रतिनिधित्व करने वाली स्ट्रिंग प्राप्त करता है
gettext ()

नमूना उपयोग:

  • आपके द्वारा निर्दिष्ट तत्व का आंतरिक पाठ प्राप्त करता है

कमांड नेविगेट करें

ये कमांड आपको विभिन्न वेब पेजों के बीच रिफ्रेश करने, जाने और आगे-पीछे जाने की अनुमति देते हैं।

नेविगेट().to()

नमूना उपयोग:

  • यह स्वचालित रूप से एक नई ब्राउज़र विंडो खोलता है और आपके द्वारा कोष्ठकों में निर्दिष्ट पृष्ठ को लाता है।
  • यह बिल्कुल वैसा ही काम करता है जैसा get() विधि.
नेविगेट().रिफ्रेश()

नमूना उपयोग:

  • किसी पैरामीटर की जरूरत नहीं है.
  • यह वर्तमान पृष्ठ को ताज़ा करता है.
नेविगेट().बैक()

नमूना उपयोग:

  • किसी पैरामीटर की जरूरत नहीं
  • यह आपको ब्राउज़र के इतिहास में एक पृष्ठ पीछे ले जाता है।
नेविगेट().फॉरवर्ड()

नमूना उपयोग:

  • किसी पैरामीटर की जरूरत नहीं
  • आपको ब्राउज़र के इतिहास में एक पृष्ठ आगे ले जाता है।

ब्राउज़र बंद करना और छोड़ना Windows

बंद करे()

नमूना उपयोग:

  • किसी पैरामीटर की जरूरत नहीं
  • यह केवल उस ब्राउज़र विंडो को बंद करता है जिसे वर्तमान में WebDriver नियंत्रित कर रहा है।
छोड़ने ()

नमूना उपयोग:

  • किसी पैरामीटर की जरूरत नहीं
  • यह वेबड्राइवर द्वारा खोली गई सभी विंडोज़ को बंद कर देता है।

ब्राउज़र बंद करना और छोड़ना Windows

के बीच अंतर को स्पष्ट रूप से दर्शाने के लिए close() और quit()नीचे दिए गए कोड को निष्पादित करने का प्रयास करें। यह एक वेबपेज का उपयोग करता है जो पेज लोड होने पर स्वचालित रूप से एक विंडो पॉप अप करता है और बाहर निकलने के बाद एक और विंडो खोलता है।

ब्राउज़र बंद करना और छोड़ना Windows

ध्यान दें कि केवल मूल ब्राउज़र विंडो बंद थी, दोनों पॉप-अप विंडो बंद नहीं थीं।

ब्राउज़र बंद करना और छोड़ना Windows

लेकिन अगर आप quit() का इस्तेमाल करते हैं, तो सभी विंडो बंद हो जाएँगी - सिर्फ़ पैरेंट विंडो ही नहीं। नीचे दिए गए कोड को चलाने की कोशिश करें और आप देखेंगे कि ऊपर दिए गए दो पॉप-अप भी अपने आप बंद हो जाएँगे।

package newproject;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;

public class PG3 {
    public static void main(String[] args) {
    	System.setProperty("webdriver.gecko.driver","C:\\geckodriver.exe");
    	WebDriver driver = new FirefoxDriver();
        driver.get("http://www.popuptest.com/popuptest2.html");
        driver.quit();  // using QUIT all windows will close
    }
}

फ़्रेम के बीच स्विच करना

फ़्रेम में GUI तत्वों तक पहुँचने के लिए, हमें सबसे पहले WebDriver को फ़्रेम या पॉप-अप विंडो पर फ़ोकस करने के लिए निर्देशित करना चाहिए, इससे पहले कि हम उनके भीतर तत्वों तक पहुँच सकें। उदाहरण के लिए, आइए वेब पेज को लें https://demo.guru99.com/selenium/deprecated.html

फ़्रेम के बीच स्विच करना

इस पृष्ठ पर 3 फ़्रेम हैं जिनके “नाम” गुण ऊपर दर्शाए गए हैं। हम ऊपर पीले रंग में घेरे गए “डिप्रेटेड” लिंक तक पहुँचना चाहते हैं। ऐसा करने के लिए, हमें पहले WebDriver को “क्लासफ़्रेम” फ़्रेम पर स्विच करने का निर्देश देना चाहिए “स्विचटू().फ्रेम()” विधि। हम फ्रेम के नाम विशेषता का उपयोग “frame()” भाग के लिए पैरामीटर के रूप में करेंगे।

package newproject;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
public class PG4 {
	  public static void main(String[] args) {
		  	System.setProperty("webdriver.gecko.driver","C:\\geckodriver.exe");  
		  	WebDriver driver = new FirefoxDriver();
	        driver.get("https://demo.guru99.com/selenium/deprecated.html");
	        driver.switchTo().frame("classFrame");
	        driver.findElement(By.linkText("Deprecated")).click();
	        driver.close(); 
	    }
}

इस कोड को निष्पादित करने के बाद, आप देखेंगे कि “classFrame” फ़्रेम को “Deprecated API” पृष्ठ पर ले जाया गया है, जिसका अर्थ है कि हमारा कोड सफलतापूर्वक “Deprecated” लिंक तक पहुंचने में सक्षम था।

पॉप-अप के बीच स्विच करना Windows

वेबड्राइवर अलर्ट जैसी पॉप-अप विंडो प्रदर्शित करने की अनुमति देता है, इसके विपरीत Selenium आईडीई। अलर्ट के भीतर तत्वों (जैसे कि इसमें मौजूद संदेश) तक पहुँचने के लिए, हमें इसका उपयोग करना होगा "switchTo().alert()" विधि। नीचे दिए गए कोड में, हम अलर्ट बॉक्स तक पहुँचने के लिए इस विधि का उपयोग करेंगे और फिर इसका उपयोग करके इसके संदेश को पुनः प्राप्त करेंगे। "getText()" विधि, और फिर स्वचालित रूप से अलर्ट बॉक्स को बंद करें "switchTo().alert().accept()" विधि.

सबसे पहले, यहाँ जाएँ https://output.jsbin.com/usidix/1 और वहां मैन्युअल रूप से “गो!” बटन पर क्लिक करें और संदेश का टेक्स्ट स्वयं देखें।

पॉप-अप के बीच स्विच करना Windows

देखते हैं Selenium ऐसा करने के लिए उदाहरण कोड-

package mypackage;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;

public class myclass {

    public static void main(String[] args) {
    	System.setProperty("webdriver.gecko.driver","C:\\geckodriver.exe");
        WebDriver driver = new FirefoxDriver();
        String alertMessage = "";

        driver.get("http://jsbin.com/usidix/1");
        driver.findElement(By.cssSelector("input[value=\"Go!\"]")).click();
        alertMessage = driver.switchTo().alert().getText();
        driver.switchTo().alert().accept();
       
        System.out.println(alertMessage);
        driver.quit();
       
    }
}

पर Eclipse कंसोल पर, ध्यान दें कि मुद्रित चेतावनी संदेश है:

पॉप-अप के बीच स्विच करना Windows

वेट्स

प्रतीक्षा दो प्रकार की होती है।

  1. अंतर्निहित प्रतीक्षा - पूरे कार्यक्रम में डिफ़ॉल्ट प्रतीक्षा समय सेट करने के लिए उपयोग किया जाता है
  2. स्पष्ट प्रतीक्षा - केवल किसी विशेष इंस्टैंस के लिए प्रतीक्षा समय निर्धारित करने के लिए उपयोग किया जाता है

निहित प्रतीक्षा

  • इसे कोड करना एक्सप्रेसिव वेट्स की तुलना में अधिक सरल है।
  • इसे आमतौर पर कोड के इन्स्टेन्शियशन भाग में घोषित किया जाता है।
  • आपको आयात करने के लिए केवल एक अतिरिक्त पैकेज की आवश्यकता होगी।

अंतर्निहित प्रतीक्षा का उपयोग शुरू करने के लिए, आपको इस पैकेज को अपने कोड में आयात करना होगा।

निहित प्रतीक्षा

फिर अपने कोड के इन्स्टेन्शियशन भाग में इसे जोड़ें।

निहित प्रतीक्षा

स्पष्ट प्रतीक्षा

स्पष्ट प्रतीक्षा WebDriverWait और ExpectedCondition वर्गों का उपयोग करके की जाती है.निम्नलिखित के लिए Selenium वेबड्राइवर उदाहरण में, हम अगले कमांड पर आगे बढ़ने से पहले उस तत्व के दिखाई देने के लिए 10 सेकंड तक प्रतीक्षा करेंगे जिसकी आईडी “यूजरनेम” है। यहाँ चरण दिए गए हैं।

चरण १:

इन दो पैकेजों को आयात करें:

स्पष्ट प्रतीक्षा

चरण १:

WebDriverWait वैरिएबल घोषित करें। इस उदाहरण में, हम वैरिएबल के नाम के रूप में “myWaitVar” का उपयोग करेंगे।

स्पष्ट प्रतीक्षा

चरण १:

उन भागों पर ExpectedConditions के साथ myWaitVar का उपयोग करें जहाँ आपको स्पष्ट प्रतीक्षा की आवश्यकता है। इस मामले में, हम “उपयोगकर्ता नाम” पर स्पष्ट प्रतीक्षा का उपयोग करेंगे (Mercury टूर्स होमपेज) इनपुट पर क्लिक करने के बाद ही हम उस पर "ट्यूटोरियल" टेक्स्ट टाइप करेंगे।

स्पष्ट प्रतीक्षा

स्थितियां

सशर्त और लू में निम्नलिखित विधियों का उपयोग किया जाता हैping संचालन —

  • सक्षम है() इसका उपयोग तब किया जाता है जब आप किसी आदेश को निष्पादित करने से पहले यह सत्यापित करना चाहते हैं कि कोई निश्चित तत्व सक्षम है या नहीं।

शर्तें isEnabled()

  • यह प्रदर्शित है() इसका उपयोग तब किया जाता है जब आप किसी आदेश को निष्पादित करने से पहले यह सत्यापित करना चाहते हैं कि कोई निश्चित तत्व प्रदर्शित हुआ है या नहीं।

शर्तें isDisplayed()

  • चयनित है() इसका उपयोग तब किया जाता है जब आप यह सत्यापित करना चाहते हैं कि कोई निश्चित चेक बॉक्स, रेडियो बटन, या ड्रॉप-डाउन बॉक्स में विकल्प चयनित है। यह अन्य तत्वों पर काम नहीं करता है।

शर्तें isSelected()

अपेक्षित शर्तों का उपयोग करना

ExpectedConditions वर्ग शर्तों का एक व्यापक सेट प्रदान करता है जिसका उपयोग आप WebDriverWait की Until() विधि के साथ संयोजन में कर सकते हैं।

नीचे कुछ सबसे सामान्य ExpectedConditions विधियाँ दी गई हैं।

  • अलर्टइज़प्रेजेंट() - अलर्ट बॉक्स प्रदर्शित होने तक प्रतीक्षा करता है।

ExpectedConditions alertIsPresent() का उपयोग करना

  • elementToBeClickable() - तब तक प्रतीक्षा करता है जब तक कोई तत्व दिखाई न दे और साथ ही सक्षम भी हो। नमूना Selenium Code नीचे दिया गया कोड, id="username" वाले एलिमेंट के दिखाई देने और सक्रिय होने तक प्रतीक्षा करेगा, उसके बाद ही उस एलिमेंट को "txtUserName" नामक वेबएलिमेंट वेरिएबल के रूप में असाइन करेगा।

अपेक्षित शर्तों का उपयोग करना

  • फ़्रेम उपलब्ध होना चाहिए और स्विच टू इट () - दिए गए फ्रेम के उपलब्ध होने तक प्रतीक्षा करता है, और फिर स्वचालित रूप से उस पर स्विच हो जाता है।

ExpectedConditions elementToBeClickable() का उपयोग करना

अपवादों को पकड़ना

isEnabled(), isDisplayed(), और isSelected() का उपयोग करते समय, WebDriver यह मान लेता है कि तत्व पहले से ही पृष्ठ पर मौजूद है। अन्यथा, यह एक फेंक देगा कोई ऐसाएलिमेंटएक्सेप्शन नहींइससे बचने के लिए, हमें try-catch ब्लॉक का उपयोग करना चाहिए ताकि प्रोग्राम बाधित न हो।

WebElement txtbox_username = driver.findElement(By.id("username"));
try{
        if(txtbox_username.isEnabled()){
            txtbox_username.sendKeys("tutorial");
        }
    }

catch(NoSuchElementException nsee){
            System.out.println(nsee.toString());
 }

यदि आप स्पष्ट प्रतीक्षा का उपयोग करते हैं, तो आपको जिस प्रकार का अपवाद पकड़ना चाहिए वह "टाइमआउट अपवाद" है।

अपवादों को पकड़ना

सारांश

  • WebDriver API का उपयोग शुरू करने के लिए, आपको कम से कम इन दो पैकेजों को आयात करना होगा।
  • org.openqa.सेलेनियम.*
  • org.openqa.selenium.फ़ायरफ़ॉक्स.Firefoxचालक
  • RSI get() विधि के बराबर है Selenium आईडीई का "ओपन" कमांड.
  • वेबड्राइवर में तत्वों का पता लगाने का कार्य निम्न का उपयोग करके किया जाता है: findElement() विधि.
  • वेबड्राइवर में तत्वों का पता लगाने के लिए निम्नलिखित विकल्प उपलब्ध हैं:
  • By.className
  • By.cssSelector
  • By.id
  • द्वारा.linkText
  • नाम से
  • आंशिक लिंक टेक्स्ट द्वारा
  • टैगनाम द्वारा
  • .xpath द्वारा
  • By.cssSelector() नहीं होता है का समर्थन "रोकना" सुविधा.
  • आप WebElement वर्ग का उपयोग करके किसी तत्व को तत्कालित कर सकते हैं।
  • किसी तत्व पर क्लिक करने का कार्य निम्न प्रकार से किया जाता है: click() विधि.
  • वेबड्राइवर ये उपयोगी आदेश प्रदान करता है:
  • प्राप्त()
  • शीर्षक प्राप्त करें()
  • पेजस्रोत प्राप्त करें()
  • getCurrentUrl()
  • gettext ()
  • वेबड्राइवर ये उपयोगी नेविगेशन कमांड प्रदान करता है
  • नेविगेट().फॉरवर्ड()
  • नेविगेट().बैक()
  • नेविगेट().to()
  • नेविगेट().रिफ्रेश()
  • close() और quit() विधियों का उपयोग ब्राउज़र विंडो को बंद करने के लिए किया जाता है। Close() एकल विंडो को बंद करने के लिए प्रयोग किया जाता है; जबकि quit() इसका उपयोग उस पैरेंट विंडो से संबंधित सभी विंडो को बंद करने के लिए किया जाता है जिसे वेबड्राइवर ऑब्जेक्ट नियंत्रित कर रहा था।
  • RSI switchTo().frame() और switchTo().alert() विधियों का उपयोग क्रमशः वेबड्राइवर के फोकस को फ्रेम या अलर्ट पर निर्देशित करने के लिए किया जाता है।
  • Implicit waits पूरे कार्यक्रम में प्रतीक्षा समय निर्धारित करने के लिए उपयोग किया जाता है, जबकि explicit waits केवल विशिष्ट भागों पर ही उपयोग किया जाता है।
  • आप isEnabled(), isDisplayed(),isSelected(), और इनके संयोजन का उपयोग कर सकते हैं वेबड्राइवरप्रतीक्षा करें और अपेक्षित शर्तें किसी तत्व की स्थिति की पुष्टि करते समय विधियाँ। हालाँकि, वे यह सत्यापित नहीं करते हैं कि तत्व मौजूद नहीं है या नहीं।
  • जब तत्व मौजूद नहीं था, जबकि isEnabled(), isDisplayed(), या isSelected() को बुलाया गया था, तो WebDriver एक फेंक देगा कोई ऐसाएलिमेंटएक्सेप्शन नहीं.
  • जब WebDriverWait और ExpectedConditions विधियों को बुलाया जाता था, जबकि तत्व मौजूद नहीं था, तो WebDriver एक फेंक देगा TimeoutException.

नोट:

driver.get(): इस विधि का उपयोग किसी विशेष वेबसाइट पर नेविगेट करने के लिए किया जाता है। हालाँकि, यह ब्राउज़र इतिहास या कुकीज़ को बनाए नहीं रखता है। नतीजतन, आगे और पीछे के बटन काम नहीं करेंगे, और उन पर क्लिक करने से पेज नेविगेशन शेड्यूल नहीं होगा।

driver.navigate(): इस विधि का उपयोग किसी विशेष वेबसाइट पर नेविगेट करने के लिए भी किया जाता है, लेकिन यह ब्राउज़र इतिहास और कुकीज़ को बनाए रखता है। यह परीक्षण केस को कोड करते समय पृष्ठों के बीच नेविगेशन के लिए आगे और पीछे के बटन का उपयोग करने की अनुमति देता है।

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