how run selenium webdriver different popular browsers
सेलेनियम केवल वेब-आधारित अनुप्रयोगों का समर्थन करता है और उन्हें खोलने के लिए हमें एक ब्राउज़र की आवश्यकता होती है। सेलेनियम परीक्षण स्वचालन के लिए विभिन्न ब्राउज़र का समर्थन कर सकता है।
इस ट्यूटोरियल में, हम बताएंगे कि बाज़ार में उपलब्ध विभिन्न ब्राउज़रों के लिए ड्राइवर कैसे सेट करें।
वर्तमान उद्योग में, केवल तीन लोकप्रिय ब्राउज़र हैं जो व्यापक रूप से उपयोग किए जाते हैं अर्थात् Google क्रोम, मोज़िला फ़ायरफ़ॉक्स और इंटरनेट एक्सप्लोरर। हालांकि, सेलेनियम अन्य ब्राउज़रों का भी समर्थन करता है। विभिन्न ब्राउज़रों पर हमारी स्क्रिप्ट को निष्पादित करने के लिए हमें उस ब्राउज़र के ड्राइवर की आवश्यकता है।
=> सभी सेलेनियम ट्यूटोरियल यहाँ पढ़ें
आप क्या सीखेंगे:
- विभिन्न ब्राउज़रों के लिए ड्राइवर कैसे सेट करें
- सेलेनियम वेबड्राइवर का उपयोग करके क्रॉस-ब्राउज़र परीक्षण
- निष्कर्ष
विभिन्न ब्राउज़रों के लिए ड्राइवर कैसे सेट करें
अनुशंसित उपकरण:
(1) लेम्बडाटेस्ट
एक स्केलेबल, सुरक्षित और विश्वसनीय क्लाउड-आधारित सेलेनियम ग्रिड पर सेलेनियम स्वचालन परीक्षण ऑनलाइन करें। एक ही समय में अपने सेलेनियम परीक्षण स्वचालन में तेजी लाने के 2000+ डेस्कटॉप और मोबाइल ब्राउज़र वातावरण के एक ऑनलाइन बुनियादी ढांचे पर परीक्षण करके अपने परीक्षण कवरेज में वृद्धि।
जब हम पहली बार सेलेनियम स्वचालन के साथ शुरू करते हैं, तो हमारी कोड की पहली पंक्ति इस प्रकार है:
WebDriver ड्राइवर = नया FireFoxDriver ();
इसका मतलब है कि WebDriver एक इंटरफ़ेस है और हम एक संदर्भ चर (ड्राइवर) को परिभाषित कर रहे हैं जिसका प्रकार एक इंटरफ़ेस है।
अब, हम जिस भी वस्तु को निर्दिष्ट करते हैं, वह एक वर्ग (फ़ायरफ़ॉक्सड्राइवर) या उस इंटरफ़ेस को लागू करने वाले किसी भी अन्य ड्राइवर का उदाहरण होना चाहिए। हमारे मामले में, FireFoxDriver एक वर्ग है और इंटरफ़ेस WebDriver है।
जब हमारा सभी ड्राइवर सेटअप हो जाता है तो हम किसी भी सेलेनियम कमांड को निष्पादित करते हैं जैसे:
Driver.getTitle ();
स्क्रीनशॉट देखें:
शेल स्क्रिप्टिंग साक्षात्कार प्रश्न और उत्तर
अब क्या होता है कि आंतरिक रूप से एक HTTP अनुरोध बनाया जाता है और उस विशिष्ट ब्राउज़र ड्राइवर को भेजा जाता है जिसे हमने परिभाषित किया था, ब्राउज़र ड्राइवर HTTP अनुरोध प्राप्त करने के लिए उस HTTP सर्वर का उपयोग करता है और यह सेलेनियम कमांड को लागू करने के लिए आवश्यक चरणों को निर्धारित करता है।
हमारे बनाए गए तर्क को ब्राउज़र पर निष्पादित किया जाता है, फिर निष्पादन परिणाम HTTP सर्वर पर वापस भेजा जाता है और यह फिर से स्वचालन स्क्रिप्ट पर स्थिति वापस भेजता है।
इस प्रकार, ड्राइवर को सेट करने के बाद हम ड्राइवर के वर्ग के सभी इन-बिल्ट तरीकों को एक्सेस कर सकते हैं जैसे:
- खोज ();
- बंद करे();
- getClass (); और बहुत सारे
स्क्रीनशॉट देखें:
इन विधियों तक पहुँचने के लिए, “टाइप करें” चालक। 'संपादक में और यह सभी तरीकों को दिखाएगा अन्यथा आप' ctrl + space 'दबा सकते हैं और यह आपको विधियों को दिखाएगा।
स्क्रीनशॉट देखें:
जब आप 'ctrl + space' दबाते हैं तो कभी-कभी अंतर्निहित तरीके सुलभ नहीं होते हैं। फिर आपको पर्यावरण चर में बनाई गई अपनी JAVA_HOME पथ सेटिंग को जांचना होगा और सुनिश्चित करना होगा कि वे सही हैं।
पर्यावरण चर सेट करने के लिए कदम:
- कंट्रोल पैनल पर जाएं -> सिस्टम पर क्लिक करें
- एडवांस सिस्टम सेटिंग्स में जाएं
- पर्यावरण चर बटन पर क्लिक करें
- नया बटन क्लिक करने पर JAVA_HOME पथ सेट करें।
सेलेनियम डिफ़ॉल्ट मोज़िला फ़ायरफ़ॉक्स ड्राइवर के साथ आता है जिसे सेलेनियम वेबड्राइवर जार फ़ाइल में बंडल किया गया है। यही कारण है कि फ़ायरफ़ॉक्स ड्राइवर को कॉल करने के लिए, किसी सेटअप की आवश्यकता नहीं है। यदि हम अन्य ब्राउज़रों का उपयोग करना चाहते हैं, तो हमें इसकी सिस्टम प्रॉपर्टी सेट करने की आवश्यकता है।
अनुशंसित पढ़ने => सेलेनियम ग्रिड का उपयोग करके क्रॉस ब्राउज़र परीक्षण
सेलेनियम वेबड्राइवर का उपयोग करके क्रॉस-ब्राउज़र परीक्षण
अब, हम नीचे दिए गए ब्राउज़रों में ड्राइवरों के सेटअप और निष्पादन को देखेंगे:
# 1) मोज़िला फ़ायरफ़ॉक्स
#दो) गूगल क्रोम
# 3) इंटरनेट एक्स्प्लोरर
# 4) ओपेरा
# 5) भूत चालक या प्रेत
# 6) HTML यूनिट
उल्लिखित ब्राउज़रों के लिए ड्राइवर (PhantomJS और HTML यूनिट को छोड़कर - इनके लिए नीचे देखें) यहाँ से डाउनलोड किए जा सकते हैं: सेलेनियमएचक्यू
आप सभी को ऊपर उल्लिखित विभिन्न ब्राउज़रों के बारे में पता है, मुझे लगता है कि अब मैं बताऊंगा कि क्या है भूत चालक तथा HTML यूनिट ड्राइवर कार्यक्षमता और कैसे उन्हें अपनी स्क्रिप्ट के लिए सेट करें।
# 1) HTML यूनिट ड्राइवर
इस ड्राइवर का उपयोग करके हम हेडलेस ब्राउजर टेस्टिंग कर सकते हैं जिसका अर्थ है कि इसके लिए कोई GUI नहीं है जिसे आप आंतरिक रूप से चलाते हुए देख सकते हैं। और, आप सभी ऑपरेशन नहीं कर सकते हैं जैसा कि आप सामान्य ब्राउज़रों में करते हैं।
आम तौर पर, परीक्षण के लिए, एचटीएमएल यूनिट ड्राइवर की सिफारिश नहीं की जाती है। हालाँकि, हम इसका उपयोग कर सकते हैं क्योंकि यह तेज़ है, वेबड्राइवर के सबसे हल्के कार्यान्वयन का उपयोग परीक्षण डेटा उत्पन्न करने के लिए किया जाता है, एक वेबपेज की सामग्री को अन्य प्रोग्राम या स्क्रिप्ट में पास करने के लिए।
HTML यूनिट ड्राइवर का उपयोग करने के लिए किसी भी अतिरिक्त एपीआई या जार फ़ाइलों को स्थापित करने की आवश्यकता नहीं है। सेलेनियम सर्वर स्टैंडअलोन जार फ़ाइल होने के बाद आप इसका उपयोग कर सकते हैं।
कोड के नीचे देखें:
//Create a Java Project, under it create a package, and under package create a class packageheadless_browser_testing; import org.openqa.Selenium.WebDriver; importorg.openqa.Selenium.htmlunit.HtmlUnitDriver; import org.testng.Assert; import org.testng.annotations.Test; publicclassvefifyTestTitle { //You can run your script with TestNG or JUnit or using Java Application // I am using TestNG and using TestNG annotations @Test publicvoidverifyFacebookTitle() { //Call HtmlUnit Driver WebDriver driver = newHtmlUnitDriver(true); //It will get the Facebook URL and run the script in background, means you //will not see the Facebook page driver.get('http://www.facebook.com'); //It will fetch the FB title and store in String String facebook_Title= driver.getTitle(); //Assert condition will check the expected and actual title, if it matches //our test passes Assert.assertTrue(facebook_Title.contains('Facebook')); System.out.println(facebook_Title); } }
उत्पादन : फेसबुक - लॉग इन या साइन अप करें
बीतने के : VerFacebookTitle
HTML यूनिट ड्राइवर को जटिल अनुप्रयोगों के लिए अनुशंसित नहीं किया गया है और जो jquery या जावास्क्रिप्ट या HTML 5 का उपयोग करता है। डिफ़ॉल्ट रूप से, यह जावास्क्रिप्ट का समर्थन नहीं करता है। इसलिए, आपको इसे सपोर्ट करने के लिए शर्त को पूरा करना होगा।
# 2) फैंटमजस ड्राइवर
PhantomJS ब्राउज़र का उपयोग हेडलेस ब्राउज़र टेस्टिंग करने के लिए भी किया जाता है। यह एक जावास्क्रिप्ट एपीआई का उपयोग करता है। आप इसका उपयोग हेडलेस वेबसाइट टेस्टिंग के लिए कर सकते हैं और वेबपेजों तक पहुँच सकते हैं। HTML यूनिट ड्राइवर पर एक फायदा यह है कि यह स्क्रीनशॉट कैप्चर कर सकता है। इसका मतलब है कि आपका परीक्षण पृष्ठभूमि में चलेगा और स्क्रीनशॉट को कैप्चर करेगा।
सेलेनियम वेबड्राइवर के साथ PhantomJS ब्राउज़र का उपयोग करने के लिए, हमें GhostDriver का उपयोग और डाउनलोड करना होगा। यह PhantomJS ब्राउज़र के लिए सरल JS में WebDriver वायर प्रोटोकॉल का कार्यान्वयन है। अब PhantomJS की नवीनतम रिलीज़ में उन्होंने भूत प्रेत को PhantomJS के साथ एकीकृत कर दिया था। इस प्रकार, अब हमें इसे अलग से स्थापित नहीं करना है।
PhantomJs.exe फ़ाइल यहाँ से डाउनलोड करें: फैंटमज
PhantomJS निष्पादित करने के लिए, हमें PhantomJS ड्राइवर की आवश्यकता होती है। लिंक को डाउनलोड करें: फैंटमजस चालक
और हमें स्क्रिप्ट निष्पादित करते समय हमें PhantomJs.binary.path प्रॉपर्टी फ़ाइल सेट करनी होगी।
कोड के नीचे देखें:
विंडोज़ में json फ़ाइल कैसे खोलें
//Create a Java Project, then under it create a package, under package create a class packageheadless_browser_testing; import java.io.File; import org.openqa.Selenium.WebDriver; import org.openqa.Selenium.phantomjs.PhantomJSDriver; import org.testng.annotations.Test; publicclass phantom_Js_Driver { //You can run your script with TestNG or JUnit or using Java Application // I am using TestNG and using TestNG annotations @Test publicvoidverifyFacebookTitle() { //Set the path to access the phantomjs.exe file File src = newFile('E:\exe\phantomjs-2.1.1-windows\bin\phantomjs.exe'); //You need to specify the property here and give path of driver System.setProperty('phantomjs.binary.path', src.getAbsolutePath()); //Call your PhantomJs Driver WebDriver driver = newPhantomJSDriver(); //It will get the Facebook URL and run the script in background, means you //will not see the Facebook page driver.get('http://www.facebook.com'); //Print the currentURL of the page System.out.println(driver.getCurrentUrl()); } }
उत्पादन : https://www.facebook.com/
PASSED: वेरिफेकबुकटाइटल
# 3) मोज़िला फ़ायरफ़ॉक्स ड्राइवर
वेबड्राइवर को फ़ायरफ़ॉक्स ब्राउज़र में कैसे चलाएं:
फ़ायरफ़ॉक्स ड्राइवर को कॉल करने के लिए अतिरिक्त जार फ़ाइलों को स्थापित या कॉन्फ़िगर करने की आवश्यकता नहीं है। यह डिफ़ॉल्ट ड्राइवर है जिसे सेलेनियम वेबड्राइवर समर्थन करता है।
निष्पादन के लिए कोड नीचे देखें:
package Different_Drivers; import org.openqa.Selenium.WebDriver; import org.openqa.Selenium.firefox.FirefoxDriver; import org.testng.annotations.Test; import org.testng.Assert; public class FF_Driver { @Test public void Test_Gmail_Login() { WebDriver driver = new FirefoxDriver(); driver.get(“http://www.gmail.com”); driver.findElement(By.id('Email')).sendKeys('Enter user name'); driver.findElement(By.id('next')).click(); Thread.sleep(2000); driver.findElement(By.id('Passwd')).sendKeys('Enter Password'); driver.findElement(By.id('signIn')).click(); Thread.sleep(2000); String title_Of_Page = driver.getTitle(); Assert.assertEquals(driver.getTitle(), title_Of_Page); System.out.println('Page title matched'); } }
उत्पादन : पृष्ठ का शीर्षक मेल हुआ
बीतने के : Test_Gmail_Login
# 4) Google Chrome ड्राइवर
Chrome ब्राउज़र में WebDriver को कैसे चलाएं:
Google Chrome ड्राइवर को कॉल करने के लिए, पहले ड्राइवर डाउनलोड करें फिर नीचे कोड का उपयोग करके सिस्टम प्रॉपर्टी सेट करें:
package Different_Drivers; import org.openqa.Selenium.WebDriver; import org.openqa.Selenium.chrome.ChromeDriver; import org.testng.annotations.Test; importjava.util.Iterator; import java.util.Set; public class googleChrome_Driver { @Test public void Test_Rediff_Alert()throws InterruptedException{ //set system property, so that we can access chrome driver System.setProperty('webdriver.chrome.driver', 'E:\chromedriver.exe'); // It will open the Chrome browser and execute your logic WebDriverdriver = new ChromeDriver(); //Open rediff page in chrome browser driver.get(“http://www.rediffmail.com”); //wait for page to load Thread.sleep(5000); // It will get and store the main window page handle or id String mainpage = driver.getWindowHandle(); String subwinhandleString = null; //set a loop which will store all window pop up handles Set handle = driver.getWindowHandles(); Iterator iterator = handle.iterator(); while(iterator.hasNext ()) { subwinhandleString = iterator.next( ); } driver.switchTo().window(subwinhandleString); System.out.println(driver.getTitle()); Thread.sleep(2000); driver.close(); //Again switch back to main window driver.switchTo().window(mainpage); System.out.println(driver.getTitle()); } }
उत्पादन : Rediff.com पर आपका स्वागत है
Rediff.com: ऑनलाइन शॉपिंग, Rediffmail, नवीनतम भारत समाचार, व्यवसाय, बॉलीवुड, खेल, स्टॉक, लाइव क्रिकेट स्कोर, पैसा, मूवी समीक्षा
बीतने के : Test_Rediff_Alert
यह भी पढ़ें=> सेलेनियम ट्यूटोरियल - Chrome और IE ब्राउज़र में तत्वों का पता लगाएँ
# 5) इंटरनेट एक्सप्लोरर ड्राइवर
कैसे IE ब्राउज़र में WebDriver चलाने के लिए:
Internet Explorer ड्राइवर को कॉल करने के लिए, ड्राइवर को डाउनलोड करें और सिस्टम गुण सेट करें।
कोड के नीचे देखें:
package Different_Drivers; import org.openqa.selenium.WebDriver; import org.openqa.selenium.ie.InternetExplorerDriver; import org.openqa.selenium.remote.DesiredCapabilities; import org.testng.annotations.Test; public class internetExplorer_Driver { @Test public void ieDriver() throws InterruptedException { //set system property, so that we can access IE driver System.setProperty('webdriver.ie.driver','E\IEDriverServer.exe'); //set desiredcapabilites for calling ie driver DesiredCapabilities capabilities = DesiredCapabilities.internetExplorer(); capabilities.setCapability (InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS,true); WebDriver driver = new InternetExplorerDriver(capabilities); driver.get('https://www.google.com'); Thread.sleep(5000); String title_Of_Page = driver.getTitle(); System.out.println(title_Of_Page); } }
उत्पादन : गूगल
बीतने के : अर्थात्
# 6) ओपेरा चालक
Opera Driver को कॉल करने के लिए, ड्राइवर डाउनलोड करें और सिस्टम गुण सेट करें।
कोड के नीचे देखें:
package Different_Drivers; import org.openqa.Selenium.WebDriver; importorg.openqa.Selenium.opera.OperaDriver; import org.testng.annotations.Test; import org.testng.Assert; public class operaDriver { @Test public void createAccount(){ //set system property, so that we can access opera driver System.setProperty('webdriver.opera.driver', 'E:\operadriver.exe'); // it will open the opera browser WebDriver driver = newOperaDriver(); driver.get('https://www.google.com/intl/en/mail/help/about.html'); // Here driver will try to find out create an account link on the application WebElement createAccount = driver.findElement(By.xpath('.//*(@id='gmail-create-account')')); Assert.assertTrue(createAccount.isDisplayed()); //Create Account will be clicked only if the above condition is true createAccount.click(); System.out.println(createAccount.getText()); } }
उत्पादन : खाता बनाएं
बीतने के : संचालनकर्ता
यह भी पढ़ें=> सेलेनियम में TestNG एनोटेशन
निष्कर्ष
इस ट्यूटोरियल में, मैंने विभिन्न ब्राउज़रों के लिए ड्राइवरों को सेटअप और उपयोग करने के तरीके को कवर किया।
हमने देखा कि कैसे एचटीएमएल यूनिट ड्राइवर और फैंटमज ड्राइवर अन्य आमतौर पर उपयोग किए जाने वाले ब्राउज़रों से अलग हैं। इसके पीछे कारण यह है कि उनका उपयोग सामान्य ब्राउज़िंग के लिए नहीं किया जाता है जैसे कि Google Chrome और अन्य; इसके बजाय, वे आंतरिक रूप से काम करते हैं और हमारे आदेशों को तेजी से निष्पादित करते हैं क्योंकि यह GUI का समर्थन नहीं करता है। हम PhantomJS के साथ सर्वर-साइड स्क्रिप्टिंग भी कर सकते हैं।
अब जब हम समझ गए हैं कि ड्राइवरों को कैसे सेटअप करना है और उन्हें विभिन्न ब्राउज़रों पर काम करना है, तो हमें स्पष्ट होना चाहिए कि हम ऐसा क्यों कर रहे हैं। जैसा कि आप सभी जानते हैं कि सेलेनियम केवल वेब-आधारित अनुप्रयोगों का समर्थन करता है और उन्हें खोलने के लिए हमें एक ब्राउज़र की आवश्यकता होती है।
इन ब्राउज़रों को खोलने के लिए विभिन्न ड्राइवर (ऊपर चर्चा की गई) उपलब्ध हैं। एक वेबड्राइवर एक इंटरफ़ेस है जिसमें इसमें परिभाषित सभी सार विधियाँ शामिल हैं। इसलिए, हम इन तरीकों को कहते हैं जो हमारे कार्यों को करने के लिए इस ट्यूटोरियल में चर्चा की गई है।
यदि आप इस ट्यूटोरियल के बारे में कोई प्रश्न / टिप्पणी चाहते हैं तो हमें बताएं।
अनुशंसित पाठ
- ककड़ी सेलेनियम ट्यूटोरियल: ककड़ी जावा सेलेनियम वेबड्राइवर एकीकरण
- सेलेनियम वेबड्राइवर का परिचय - सेलेनियम ट्यूटोरियल # 8
- हमारी पहली वेबड्राइवर स्क्रिप्ट का कार्यान्वयन - सेलेनियम वेबड्राइवर ट्यूटोरियल # 10
- सेलेनियम पूछे जाने वाले प्रश्न
- सेलेनियम वेबड्राइवर में अलर्ट / पॉपअप कैसे हैंडल करें - सेलेनियम ट्यूटोरियल # 16
- सेलेनियम वेबड्राइवर में निहित और स्पष्ट प्रतीक्षा (सेलेनियम के प्रकार के प्रकार)
- गाइड सेलेनियम वेबड्राइवर में अत्यधिक रिपोर्ट उत्पन्न करने के लिए
- गेकोड्राइवर सेलेनियम ट्यूटोरियल: सेलेनियम प्रोजेक्ट्स में गेकोड्राइवर का उपयोग कैसे करें