geckodriver selenium tutorial
GeckoDriver सेलेनियम ट्यूटोरियल: सेलेनियम में जेको (मैरियनेट) ड्राइवर का उपयोग करना सीखें
यह समझने के लिए कि गेकोड्राइव क्या है, शुरू में हमें गेको और वेब ब्राउज़र इंजन के बारे में जानना होगा। यह ट्यूटोरियल गेकोड्राइवर से जुड़ी लगभग सभी विशेषताओं को कवर करता है, जिससे आपको इसका पूरा अवलोकन मिल जाता है।
तो शुरू करने के लिए, आइए पहले जानते हैं कि गेको क्या है और एक वेब ब्राउज़र इंजन क्या है?
आप क्या सीखेंगे:
- गेको क्या है?
- एक वेब ब्राउज़र इंजन क्या है?
- गेकोड्राइवर क्या है?
- सेलेनियम को गेकोड्राइव की आवश्यकता क्यों है?
- सेलेनियम प्रोजेक्ट में गेकोड्राइवर का उपयोग कैसे करें?
- गेकोड्राइवर और टेस्टएनजी
- सिस्टम के पथ पर्यावरण चर में एक पथ जोड़ने के लिए कदम
- गेको चालक के बिना मुद्दे
- GeckoDriver के बारे में अतिरिक्त जानकारी
- निष्कर्ष
- अनुशंसित पाठ
गेको क्या है?
गेको एक वेब ब्राउजर इंजन है। कई एप्लिकेशन हैं जिनके लिए गेको की आवश्यकता होती है। विशेष रूप से, जो आवेदन मोज़िला फाउंडेशन और मोज़िला निगम द्वारा विकसित किए गए हैं। गेको कई ओपन सोर्स सॉफ्टवेयर प्रोजेक्ट्स की भी जरूरत है। गेको C ++ और जावास्क्रिप्ट में लिखा गया है।
नवीनतम संस्करण रस्ट में भी लिखे गए हैं। गेको एक स्वतंत्र और एक खुला स्रोत वेब ब्राउज़र इंजन है।
एक वेब ब्राउज़र इंजन क्या है?
वेब ब्राउजर इंजन एक सॉफ्टवेयर प्रोग्राम के अलावा कुछ नहीं है। इस कार्यक्रम का मुख्य कार्य सामग्री (जैसे HTML, XML, चित्र) एकत्र करना और जानकारी को तैयार करना (सीएसएस की तरह) और स्क्रीन पर इस स्वरूपित सामग्री को प्रदर्शित करना है। वेब ब्राउजर इंजन को लेआउट इंजन या रेंडरिंग इंजन भी कहा जाता है।
वेब ब्राउजर, ईमेल क्लाइंट, ई-बुक रीडर, ऑन-लाइन हेल्प सिस्टम आदि जैसे एप्लिकेशन को वेब सामग्री प्रदर्शित करने की आवश्यकता होती है। और वेब सामग्री को प्रदर्शित करने के लिए, वेब ब्राउज़र इंजन की आवश्यकता होती है और यह इन सभी अनुप्रयोगों का एक हिस्सा है। प्रत्येक वेब ब्राउज़र के लिए अलग-अलग वेब ब्राउज़र इंजन होते हैं।
निम्न तालिका वेब ब्राउज़र और क्या वेब ब्राउज़र इंजन दिखाती है, वे उपयोग कर रहे हैं।

गेको बिना उत्सर्जन के निम्नलिखित ऑपरेटिंग सिस्टम पर चलता है:
- खिड़कियाँ
- मैक ओ एस
- लिनक्स
- बीएसडी
- यूनिक्स
यह सिम्बियन OS पर नहीं चल सकता है।
गेकोड्राइवर क्या है?
GeckoDriver आपके लिए फ़ायरफ़ॉक्स ब्राउज़र का एक कनेक्टिंग लिंक है सेलेनियम में स्क्रिप्ट । गेकोड्राइवर एक प्रॉक्सी है जो गेको-आधारित ब्राउज़रों (जैसे फ़ायरफ़ॉक्स) के साथ संवाद करने में मदद करता है, जिसके लिए यह HTTP एपीआई प्रदान करता है।
सेलेनियम को गेकोड्राइव की आवश्यकता क्यों है?
फ़ायरफ़ॉक्स (संस्करण 47 और ऊपर) ने इसमें कुछ बदलाव किए हैं और कुछ सुरक्षा कारणों से, यह किसी भी तीसरे पक्ष के ड्राइवर को सीधे ब्राउज़र के साथ बातचीत करने की अनुमति नहीं देता है। इसलिए हम फ़ायरफ़ॉक्स के नवीनतम संस्करणों के साथ सेलेनियम 2 का उपयोग नहीं कर सकते हैं। इसलिए हमें सेलेनियम 3 की आवश्यकता है।
सेलेनियम 3 में मैरियोनेट ड्राइवर है। सेलेनियम 3 सीधे फ़ायरफ़ॉक्स ब्राउज़र के साथ प्रॉक्सी का उपयोग करके बातचीत कर सकता है, जो कि गेकोड्राइवर के अलावा कुछ भी नहीं है।
सेलेनियम प्रोजेक्ट में गेकोड्राइवर का उपयोग कैसे करें?
- आइए हम इस पर विचार करें कि आपके पास इसका नवीनतम संस्करण है सेलेनियम वेबड्राइवर और फ़ायरफ़ॉक्स ब्राउज़र।
- फिर से जियोक्रीवर डाउनलोड करें यहाँ । बाद में, वह संस्करण चुनें जो आपके कंप्यूटर के लिए उपयुक्त है।

- फ़ाइलों को निकालें संपीड़ित फ़ोल्डर से

- सेलेनियम 3 के संदर्भों को अपनी परियोजना में जोड़ें- प्रोजेक्ट पर राइट-क्लिक करें => बिल्ड पाथ => कन्फर्म बिल्ड पाथ => लाइब्रेरी => एक्सटर्नल जार जोड़ें।

- चुनते हैं Lib फ़ोल्डर => Clt + A => ओपन पर क्लिक करें ।

- आपके बाद खुला क्लिक करें , आप निम्न विंडो देखेंगे:

- फिर ओके पर क्लिक करें।
- अब हम अपना कोड लिखते हैं और गेकोड्राइव पथ को निर्दिष्ट करने के लिए सिस्टम गुण का उपयोग करते हैं।
- अपने कोड में नीचे पंक्ति जोड़ें:
System.setProperty(“webdriver.gecko.driver”,”Path of the GeckoDriver file”).** ( निकाले गए फ़ाइल का पता कैसे कॉपी करें। - - कीबोर्ड से 'शिफ्ट' दबाएं और फ़ाइल को राइट-क्लिक करें, आपको एक विकल्प मिलेगा। फिर 'फ़ाइल का पता कॉपी करें'))
** ( इस कॉपी पेस्ट किए गए पथ में, सुनिश्चित करें कि कोई दोहरा बैकलैश है अन्यथा कोड में सिंटैक्स त्रुटि होगी।)
एक उदाहरण लेते हैं
उदाहरण
यहाँ एक सरल स्क्रिप्ट है, जहाँ हम फ़ायरफ़ॉक्स ब्राउज़र में Google वेब पेज खोलते हैं और वेब पेज के शीर्षक को सत्यापित करते हैं।
कूट १:
import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; publicclass First_Class { publicstaticvoid main(String() args) { System.setProperty('webdriver.gecko.driver','E:\GekoDriver\geckodriver-v0.15.0-win64\geckodriver.exe'); WebDriver driver=new FirefoxDriver(); driver.get('https://www.google.com/'); driver.manage().window().maximize(); String appTitle=driver.getTitle(); String expTitle='Google'; if (appTitle.equals (expTitle)){ System.out.println('Verification Successfull'); } else{ System.out.println('Verification Failed'); } driver.close(); System.exit(0); } }संहिता को समझना
(1) आयात org.openqa.selenium.WebDriver- यहां हम WebDriver इंटरफ़ेस के सभी संदर्भ आयात कर रहे हैं। बाद में, इस WebDriver इंटरफ़ेस को एक नए ब्राउज़र को इंस्टेंट करने के लिए आवश्यक है।
# 2) import org.openqa.selenium.firefox.FirefoxDriver- यहां हम FirefoxDriver वर्ग के सभी संदर्भ आयात कर रहे हैं।
# 3) setProperty (स्ट्रिंग कुंजी, स्ट्रिंग मान) - यहां हम सिस्टम प्रॉपर्टी को उस संपत्ति का नाम प्रदान करके सेट कर रहे हैं जिसे कुंजी कहा जाता है और इसका पथ जिसे वैल्यू कहा जाता है।
चाभी -प्रणाली संपत्ति का नाम यानि webdriver.gecko.driver ।
मूल्य - गेको चालक की एक्सई फ़ाइल का पता।
# 4) WebDriver ड्राइवर = नया FirefoxDriver () - कोड की इस पंक्ति में हम WebDriver के संदर्भ चर of ड्राइवर ’बना रहे हैं और इस संदर्भ चर को FirefoxDverver वर्ग का उपयोग करके शुरू किया गया है। एक्सटेंशन और प्लगइन्स के बिना फ़ायरफ़ॉक्स प्रोफ़ाइल फ़ायरफ़ॉक्स उदाहरण के साथ लॉन्च की जाएगी।
# 5) ('URL') प्राप्त करें - इस विधि का उपयोग करके हम ब्राउज़र में निर्दिष्ट URL खोल सकते हैं। इस गेट विधि को वेबड्राइवर के संदर्भ चर यानी ड्राइवर का उपयोग करके कहा जाता है। स्ट्रिंग को गेट विधि में पारित किया जाता है, जिसका अर्थ है कि हमारा एप्लिकेशन URL इस गेट विधि में पारित हो गया है।
# 6) प्रबंधित करें ()। विंडो ()। अधिकतम () - कोड की इस पंक्ति का उपयोग करके हम ब्राउज़र विंडो को अधिकतम कर रहे हैं। जैसे ही ब्राउज़र निर्दिष्ट URL खोलता है, यह इस लाइन का उपयोग करके अधिकतम हो जाता है।
# 7) getTitle () - कोड की इस लाइन का उपयोग करके, हम वेब पेज का शीर्षक खोजने में सक्षम होंगे। इस विधि को वेबड्राइवर के संदर्भ चर 'ड्राइवर' का उपयोग करके भी कहा जाता है। हम इस शीर्षक को स्ट्रिंग saving appTitle ’में सहेज रहे हैं।
# 8) तुलना- यहां हम एपटाइटल की तुलना कर रहे हैं (जिसके माध्यम से मिलेगा Driver.getTitle () विधि) और निष्कासित करना (जो 'Google' है) यदि कथन का उपयोग किया जाता है। यह सिर्फ एक सरल इफ-स्टेटमेंट है। जब 'यदि' शर्त पूरी हो जाती है, तो हम 'सत्यापन सफल' संदेश मुद्रित कर रहे हैं अन्यथा हम मुद्रण संदेश 'सत्यापन विफल' हैं।
if (appTitle.equals (expTitle)) { System.out.println ('Verification Successful'); } else { System.out.println('Verification Failed'); }# 9) Driver.close () - कोड की यह लाइन ब्राउज़र को बंद कर देती है। यह लाइन केवल वर्तमान विंडो बंद करती है।
# 10) System.exit (0) - कोड विधि की इस लाइन का उपयोग जावा वर्चुअल मशीन को चलाने के लिए किया जाता है। इसलिए इस लाइन से पहले सभी खुली हुई खिड़कियों या फाइलों को बंद करने की सिफारिश की जाती है।
गेकोड्राइवर और टेस्टएनजी
कोड में बहुत अंतर नहीं है, लेकिन यहां मैं आपके संदर्भ के लिए केवल एक कोड जोड़ रहा हूं।
उदाहरण:
उदाहरण के लिए चलते हैं। हमारा उदाहरण Google.com वेब पेज को खोलना, इसका शीर्षक प्राप्त करना और इसे प्रिंट करना है।
कोड 2:
import org.testng.annotations.Test; import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; publicclass TstNG { @Test publicvoid f() { System.setProperty('webdriver.gecko.driver','E:\GekoDriver\geckodriver-v0.15.0-win64\geckodriver.exe'); WebDriver driver=new FirefoxDriver(); driver.get('https://www.google.com/'); driver.manage().window().maximize(); String appurl=driver.getTitle(); System.out.println(appurl); driver.close(); // System.exit(0); } }TestNG कोड लिखते समय याद रखने वाले बिंदु:
# 1) फ़ंक्शन f () पिछले उदाहरण के समान के अंदर System.setProperty (स्ट्रिंग कुंजी, स्ट्रिंग मान) विधि का उपयोग करें। उस उदाहरण में, हमने इसे मुख्य कार्य में लिखा था। हालाँकि, TestNG में, कोई मुख्य () फ़ंक्शन नहीं हैं। यदि आप इसे फ़ंक्शन के बाहर लिखते हैं, तो आपको एक सिंटैक्स त्रुटि मिलेगी।
#दो) याद रखने वाली दूसरी सबसे महत्वपूर्ण चीज है System.exit (0)। आपकी TestNG स्क्रिप्ट में कोड की इस पंक्ति को जोड़ने की कोई आवश्यकता नहीं है। इसका एक कारण है जो है - TestNG स्क्रिप्ट चलाने के बाद, आउटपुट फ़ोल्डर उत्पन्न होता है जहां आप उत्पन्न रिपोर्ट देख सकते हैं और परिणाम प्राप्त कर सकते हैं, यदि आप अपनी स्क्रिप्ट में System.exit (0) जोड़ते हैं तो यह फ़ोल्डर (आउटपुट फ़ोल्डर) नहीं मिलेगा उत्पन्न और आप रिपोर्ट नहीं देख पाएंगे।
सिस्टम के पथ पर्यावरण चर में एक पथ जोड़ने के लिए कदम
- विंडोज सिस्टम पर माय कंप्यूटर या इस पीसी पर राइट क्लिक करें।
- गुण का चयन करें।
- उन्नत सिस्टम सेटिंग्स का चयन करें।
- पर्यावरण चर बटन पर क्लिक करें।
- सिस्टम वेरिएबल्स में से PATH का चयन करें।
- Edit बटन पर क्लिक करें।
- न्यू बटन पर क्लिक करें
- GeckoDriver फ़ाइल का पथ चिपकाएँ।
- ओके पर क्लिक करें।
गेको चालक के बिना मुद्दे
आप नीचे दिए गए मुद्दों की तरह कुछ मुद्दों का सामना कर सकते हैं।
# 1) यदि आप फ़ायरफ़ॉक्स और सेलेनियम 3 के पुराने संस्करण का उपयोग कर रहे हैं, तो आपको निम्नलिखित अपवाद मिलेगा:
परीक्षण मामले और परीक्षण योजना के बीच अंतर
थ्रेड में अपवाद 'मुख्य' java.lang.IllegalStateException
#दो) यदि आप फ़ायरफ़ॉक्स के नवीनतम संस्करण और सेलेनियम के पुराने संस्करण का उपयोग कर रहे हैं, तो आपको निम्नलिखित अपवाद मिलेगा:
org.openqa.selenium.firefox.NotConnectedException : 45000ms के बाद पोर्ट 7055 पर 127.0.0.1 होस्ट करने के लिए कनेक्ट करने में असमर्थ
# 3) यदि आप फ़ायरफ़ॉक्स और वेबड्राइवर के नवीनतम संस्करण का उपयोग कर रहे हैं, लेकिन गेकोड्राइवर का उपयोग नहीं कर रहे हैं, तो आपको निम्नलिखित जानकारी मिलेगी:
थ्रेड में अपवाद 'मुख्य' java.lang.IllegalStateException: ड्राइवर के निष्पादन योग्य पथ को webdriver.gecko.driver सिस्टम गुण द्वारा सेट किया जाना चाहिए; अधिक जानकारी के लिए देखें यहाँ ।नवीनतम संस्करण से डाउनलोड किया जा सकता है यहाँ ।
GeckoDriver के बारे में अतिरिक्त जानकारी
जैसा कि हम जानते हैं कि गेकोड्राइवर एक प्रॉक्सी है जो गेको-आधारित ब्राउज़रों (जैसे फ़ायरफ़ॉक्स) के साथ संवाद करने में मदद करता है, जिसके लिए यह HTTP एपीआई प्रदान करता है।
इस HTTP एपीआई को वेबड्राइवर प्रोटोकॉल का उपयोग करके समझा जा सकता है। वेबड्राइवर प्रोटोकॉल में कुछ नोड्स हैं जिनमें लोकल एंड, रिमोट एंड, इंटरमीडियरी नोड और एंडपॉइंट नोड शामिल हैं। इन नोड्स के बीच संचार WebDriver प्रोटोकॉल में वर्णित है।
स्थानीय अंत WebDriver प्रोटोकॉल का क्लाइंट पक्ष है। रिमोट एंड का मतलब होता है वेबड्राइवर प्रोटोकॉल का सर्वर साइड। इंटरमीडियरी नोड एक प्रॉक्सी की भूमिका निभाता है। एंडपॉइंट नोड को एक उपयोगकर्ता एजेंट या एक समान प्रोग्राम द्वारा प्रभाव में लाया जाता है।

WebDriver द्वारा GeckoDriver को भेजी गई कमांड और प्रतिक्रियाएं Marionette Protocol पर अनुवादित की जाती हैं और फिर GeooDriver द्वारा Marionette Driver को हस्तांतरित की जाती हैं। इसलिए हम यह कहते हुए निष्कर्ष निकालते हैं कि गेकोड्राइवर इन दो वेबड्राइवर और मैरियनेट के बीच एक प्रॉक्सी के रूप में कार्य कर रहा है।
मैरियनेट को 2 भागों में विभाजित किया गया है, जो सर्वर पार्ट और क्लाइंट पार्ट है। क्लाइंट भाग द्वारा भेजे गए कमांड को सर्वर भाग द्वारा निष्पादित किया जाता है।
यह कमांड निष्पादन कार्य ब्राउज़र के अंदर किया जाता है। मैरियनेट एक गेको घटक (जो एक मैरियनेट सर्वर है) और एक बाहरी घटक (जिसे मैरियनेट क्लाइंट कहा जाता है) के संयोजन के अलावा कुछ भी नहीं है। GeckoDriver को Rust प्रोग्रामिंग लैंग्वेज में लिखा गया है।
निष्कर्ष
GeckoDriver आपके सेलेनियम लिपियों और फ़ायरफ़ॉक्स जैसे गेको-आधारित ब्राउज़रों के बीच एक मध्यवर्ती कारक है।
GeckoDriver, Gecko- आधारित ब्राउज़रों के साथ संवाद करने के लिए एक प्रॉक्सी है ( जैसे फ़ायरफ़ॉक्स)। फ़ायरफ़ॉक्स (संस्करण 47 और इसके बाद के संस्करण) में कुछ बदलाव किए गए हैं, जिसके कारण तीसरे पक्ष के ड्राइवरों को ब्राउज़रों से सीधे संपर्क करने में मदद मिली है।
यह प्राथमिक कारण है जिसके लिए हमें गेकोड्राइवर का उपयोग करने की आवश्यकता है। अपनी स्क्रिप्ट में गेकोड्राइवर का उपयोग करने का सबसे आसान तरीका है उपयोग के कार्यान्वयन को लागू करना सिस्टम .सेट प्रॉपर्टी। (System.setProperty ('webdriver.gecko.driver', 'गेको चालक फ़ाइल का पथ'))।
क्या आप गेकोड्राइव के लिए नए हैं? क्या आपने आज इस गेकोड्राइव सेलेनियम में कुछ नया सीखा? या आपके पास गेकोड्राइव के बारे में हमारे साथ साझा करने के लिए कुछ दिलचस्प है? नीचे टिप्पणी अनुभाग में अपने विचार व्यक्त करने के लिए स्वतंत्र महसूस करें।
अनुशंसित पाठ
- ककड़ी सेलेनियम ट्यूटोरियल: ककड़ी जावा सेलेनियम वेबड्राइवर एकीकरण
- सेलेनियम वेबड्राइवर का परिचय - सेलेनियम ट्यूटोरियल # 8
- सेलेनियम उदाहरणों के साथ पाठ ट्यूटोरियल द्वारा तत्व का पता लगाएं
- हमारी पहली वेबड्राइवर स्क्रिप्ट का कार्यान्वयन - सेलेनियम वेबड्राइवर ट्यूटोरियल # 10
- सेलेनियम वेबड्राइवर में अलर्ट / पॉपअप कैसे हैंडल करें - सेलेनियम ट्यूटोरियल # 16
- वेबड्राइवर संपूर्ण सेटअप और स्थापना ग्रहण के साथ - सेलेनियम ट्यूटोरियल # 9
- शुरुआती के लिए गहराई से ग्रहण ट्यूटोरियल
- कुशल सेलेनियम स्क्रिप्टिंग और समस्या निवारण परिदृश्य - सेलेनियम ट्यूटोरियल # 27