WebDriver क्या है? सेशन, कमांड, और ब्राउज़र ऑटोमेशन

WebDriver क्या है?

Scrapeless Agent Browser अपने प्रलेखित कनेक्शन इंटरफ़ेस का उपयोग करने वाले ऑटोमेशन क्लाइंट्स के लिए प्रबंधित क्लाउड ब्राउज़र प्रदान करता है।

WebDriver वेब ब्राउज़र के लिए एक मानकीकृत रिमोट-कंट्रोल इंटरफ़ेस है। ब्राउज़र के बाहर का एक प्रोग्राम नेविगेट करने, तत्वों को खोजने, इंटरैक्शन करने और ब्राउज़र की स्थिति का निरीक्षण करने के लिए WebDriver कमांड्स का उपयोग करता है। यह इंटरफ़ेस भाषा-निर्पेक्ष है, जिससे अलग-अलग प्रोग्रामिंग भाषाओं में क्लाइंट लाइब्रेरीज़ एक सामान्य प्रोटोकॉल मॉडल के माध्यम से ब्राउज़र ऑपरेशन्स को व्यक्त कर सकती हैं।

WebDriver का अक्सर Selenium के ज़रिए सामना होता है, लेकिन ये शब्द अलग‑अलग स्तरों को दर्शाते हैं। WebDriver ब्राउज़र‑नियंत्रण अनुबंध को परिभाषित करता है; Selenium वे लाइब्रेरियाँ और अधिसंरचना प्रदान करता है जो ब्राउज़र ऑटोमेशन इंटरफेसेज़ का उपयोग करती हैं। किसी विशिष्ट ब्राउज़र के लिए ड्राइवर उस विशेष ब्राउज़र वातावरण के लिए रिमोट साइड को लागू करता है।

एक WebDriver कमांड ब्राउज़र तक कैसे पहुँचता है

एक WebDriver क्लाइंट ब्राउज़र को नियंत्रित करने वाले रिमोट एंड को एक कमांड भेजता है। WebDriver प्रोटोकॉल इस संबंध और कमांड तथा प्रतिक्रियाओं के व्यवहार को परिभाषित करता है।

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

किसी दूरस्थ एंड तक स्थानीय रूप से या किसी नेटवर्क सेवा के माध्यम से पहुँचा जा सकता है। “दूरस्थ” नियंत्रण सीमा का वर्णन करता है; यह आवश्यक नहीं है कि ब्राउज़र किसी सार्वजनिक क्लाउड में हो। उसी कंप्यूटर पर चल रही एक ड्राइवर प्रक्रिया अब भी नियंत्रित किए जा रहे ब्राउज़र के बाहर होती है।

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

एक सत्र स्वचालन संबंध स्थापित करता है

एक WebDriver सत्र एक क्लाइंट और ब्राउज़र परिवेश के बीच संबंध स्थापित करता है। बाद के कमांड उस सत्र के भीतर तब तक संचालित होते हैं जब तक वह समाप्त नहीं हो जाता।

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

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

सत्र समाप्त होने पर उसे स्पष्ट रूप से समाप्त करें। केवल एक विंडो बंद करना और स्वचालन सत्र समाप्त करना अलग-अलग क्रियाएँ हैं। एक क्लीनअप नीति में विंडो, ब्राउज़र प्रक्रियाएँ, और कार्य से संबंधित किसी भी रिमोट संसाधन को शामिल करना चाहिए।

ड्राइवर और क्लाइंट लाइब्रेरी अलग-अलग घटक हैं

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

The ChromeDriver कार्यान्वयन Chrome के लिए ब्राउज़र ऑटोमेशन समर्थन प्रदान करता है। अन्य ब्राउज़रों की अपनी-अपनी इम्प्लीमेंटेशन और समर्थन संबंधी जानकारियाँ होती हैं। यह न मानें कि किसी एक ब्राउज़र के ड्राइवर से हर ब्राउज़र उत्पाद को नियंत्रित किया जा सकता है।

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

परतजिम्मेदारीसामान्य प्रश्न
एप्लिकेशन या परीक्षणआवश्यक वर्कफ़्लो और अ‍ॅसर्शन परिभाषित करेंउपयोगकर्ता को क्या दिखना चाहिए?
क्लाइंट लाइब्रेरीस्वचालन कमांड व्यक्त करें और भेजेंयह भाषा इस ऑपरेशन को कैसे उजागर करती है?
ड्राइवर या रिमोट एंडब्राउज़र-नियंत्रण कमांड्स लागू करेंक्या यह वातावरण यह क्रिया कर सकता है?
ब्राउज़रवेब सामग्री लोड करें और निष्पादित करेंकौन-सा दस्तावेज़ और कौन-सी अवस्था वास्तव में रेंडर हुई?

तत्व संदर्भ किसी दस्तावेज़ जीवनचक्र से संबंधित होते हैं

एक WebDriver एलिमेंट संदर्भ किसी विशेष ब्राउज़र संदर्भ और दस्तावेज़ स्थिति में पाए गए एलिमेंट की पहचान करता है। यह संदर्भ बाद में उसी दृश्य स्थिति पर जो भी मौजूद हो, उसके लिए एक स्थायी लोकेटर नहीं होता है।

एक नेविगेशन दस्तावेज़ को प्रतिस्थापित कर देता है। एक क्लाइंट-साइड एप्लिकेशन भी पेज URL बदले बिना किसी तत्व को प्रतिस्थापित कर सकता है। जब पहले संदर्भित किसी तत्व को अलग कर दिया जाता है, तो उस संदर्भ का उपयोग जारी रखने पर stale-element त्रुटि उत्पन्न हो सकती है।

स्थिर अर्थ के आसपास इंटरैक्शन डिज़ाइन करें। इच्छित क्रिया से जुड़े नियंत्रण को ढूँढें, संबंधित पेज स्थिति की पुष्टि करें, और ज्ञात दस्तावेज़ या घटक प्रतिस्थापन के बाद किसी तत्व को पुनः प्राप्त करें। संग्रहीत एलिमेंट हैंडल को किसी टिकाऊ व्यावसायिक पहचानकर्ता के रूप में न मानें।

फ्रेम चयन भी मायने रखता है। एक iframe के अंदर का नोड चाइल्ड डॉक्युमेंट से संबंधित होता है, इसलिए वर्तमान ब्राउज़िंग कॉन्टेक्स्ट यह निर्धारित करता है कि किसी एलिमेंट की खोज कहाँ की जाएगी। गलत फ्रेम में सही सेलेक्टर भी गलत डॉक्युमेंट को ही संबोधित करता है।

वेट्स को एप्लिकेशन की तत्परता का वर्णन करना चाहिए

एक उपयोगी वेट अगली कार्रवाई के लिए आवश्यक एप्लिकेशन की स्थिति का वर्णन करता है। ब्राउज़र नेविगेशन की पूर्णता और बिज़नेस-स्टेट की पूर्णता अक्सर अलग-अलग घटनाएँ होती हैं।

उदाहरण के लिए, परिणाम कंटेनर उसके रिकॉर्ड आने से पहले मौजूद हो सकता है। एक बटन दिखाई दे सकता है जबकि एक लोडिंग ओवरले इंटरैक्शन को रोक रहा हो। पेज टाइटल सही हो सकता है जबकि एक ऑथराइज़ेशन प्रॉम्प्ट मुख्य कंटेंट क्षेत्र पर कब्जा किए रहता है।

ऐसी स्थितियाँ चुनें जो कार्रवाई से मेल खाएँ। किसी रिकॉर्ड को निकालने से पहले, पुष्टि करें कि रिकॉर्ड की पहचान और आवश्यक फ़ील्ड मौजूद हैं। किसी कंट्रोल का चयन करने से पहले, पुष्टि करें कि वह अपेक्षित संदर्भ और स्टेट में उपलब्ध है। केवल इस सबूत के रूप में मनमाने विलंब से बचें कि एप्लिकेशन तैयार है।

टाइमआउट डायग्नोसिस को ठोस रखें। जब कोई स्थिति पूरी नहीं होती, तो अंतिम URL, दिखाई देने वाला पेज, फ़्रेम और अपेक्षित स्टेट की जाँच करें। टाइमआउट बढ़ाने से न तो गलत सेलेक्टर ठीक होता है और न ही गायब ऑथराइज़ेशन मिल जाता है।

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

WebDriver का Selenium से संबंध कैसे है

Selenium एक ऑटोमेशन इकोसिस्टम है जिसमें WebDriver क्लाइंट सपोर्ट और अतिरिक्त इन्फ्रास्ट्रक्चर शामिल हैं। Selenium WebDriver architecture समझाता है कि इसकी लाइब्रेरीज़ समर्थित ऑटोमेशन इम्प्लीमेंटेशन के माध्यम से ब्राउज़रों को कैसे नियंत्रित करती हैं।

जब आप किसी आवश्यकता को निर्दिष्ट करते हैं तो यह अंतर महत्वपूर्ण होता है। “Supports Selenium” किसी क्लाइंट लाइब्रेरी, किसी रिमोट सर्वर, या किसी विशेष ब्राउज़र रूट को संदर्भित कर सकता है। उपयोगी आवश्यकता प्रोग्रामिंग भाषा, ब्राउज़र, कनेक्शन प्रकार और वे ऑपरेशन बताती है जिनकी काम को ज़रूरत है।

Selenium Grid उपलब्ध निष्पादन वातावरणों में ब्राउज़र सत्रों का वितरण संभालता है। वितरण स्वयं पेज से निकाले गए डेटा को मान्य नहीं करता या यह तय नहीं करता कि कोई लोकेटर सही है या नहीं। ये जाँचें उस जॉब में रखें जो एप्लिकेशन लॉजिक का मालिक है।

टेस्ट फ़्रेमवर्क ब्राउज़र इंटरेक्शन के चारों ओर एसेर्शन, रिपोर्टिंग और सूट संगठन जोड़ते हैं। WebDriver कोई कार्रवाई सफलतापूर्वक कर सकता है जबकि एसेर्शन असफल हो जाए क्योंकि एप्लिकेशन ने गलत परिणाम उत्पन्न किया। यह विरोधाभास नहीं बल्कि उपयोगी अंतर है।

WebDriver BiDi और CDP के लिए अलग संगतता जाँच की ज़रूरत होती है

WebDriver BiDi और CDP अतिरिक्त प्रोटोकॉल सरफेस हैं जिनकी अपनी क्षमताएँ और सपोर्ट सीमाएँ होती हैं। उनके बारे में किसी साधारण रिमोट ब्राउज़र कनेक्शन के अस्तित्व से अनुमान नहीं लगाना चाहिए।

BiDi कमांड और ब्राउज़र द्वारा उत्पन्न इवेंट्स के लिए द्विदिश मॉडल जोड़ता है। CDP DevTools-उन्मुख ब्राउज़र नियंत्रण उजागर करता है। कोई क्लाइंट इकोसिस्टम एक से अधिक इंटरफ़ेस का उपयोग कर सकता है, लेकिन फिर भी आपके एप्लिकेशन को चुने गए ब्राउज़र और रिमोट एंडपॉइंट द्वारा ठीक वही ऑपरेशन समर्थित होना चाहिए।

जब कोई एप्लिकेशन नेटवर्क ऑब्ज़र्वेशन या कंसोल इवेंट्स पर निर्भर करता है, तो उन आवश्यकताओं का स्पष्ट रूप से विवरण करें। प्रोटोकॉल फीचर, क्लाइंट API, ब्राउज़र संस्करण और रिमोट प्रोवाइडर रूट को एक संयोजन के रूप में जाँचें।

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

प्रबंधित ब्राउज़र होस्टिंग एक अलग निर्णय है

प्रबंधित ब्राउज़र होस्टिंग यह तय करती है कि ब्राउज़र वातावरण को कौन संचालित करता है; WebDriver एक ब्राउज़र-कंट्रोल इंटरफ़ेस निर्धारित करता है। होस्टिंग निर्णय और प्रोटोकॉल निर्णय का एक साथ मूल्यांकन होना चाहिए, उन्हें एक ही चीज़ न मानें।

Scrapeless Agent Browser प्रबंधित ब्राउज़र निष्पादन प्रदान करता है, और इसका browser overview उस इन्फ्रास्ट्रक्चर भूमिका को समझाता है। आप जो वर्कफ़्लो चुनते हैं उसके लिए वर्तमान में प्रलेखित कनेक्शन इंटरफेस का उपयोग करें, और डिप्लॉयमेंट की योजना बनाने से पहले प्रोटोकॉल संगतता स्थापित करें।

The Selenium scraping discussion ब्राउज़र-चालित डेटा संग्रहण के लिए संबंधित संदर्भ प्रदान करती है। ब्राउज़र वर्कलोड और कनेक्शन आवश्यकताओं की पहचान करने के बाद ही Scrapeless pricing की समीक्षा करें। होस्टिंग किसी ऐसे एक्सट्रैक्शन नियम को ठीक नहीं कर सकती जो गलत रिकॉर्ड पढ़ रहा हो।

निष्कर्ष

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

अपने ब्राउज़र निष्पादन आवश्यकताओं को परिभाषित करें

Scrapeless Agent Browser का मूल्यांकन उन कनेक्शन इंटरफेस और जीवनचक्र के संदर्भ में करें जिनकी आपके एप्लिकेशन को वास्तव में ज़रूरत है।

आज ही साइन अप करें और प्राप्त करें $5 in free credit — क्रेडिट कार्ड की आवश्यकता नहीं.

अपना $5 क्रेडिट क्लेम करें →

FAQ

प्रश्न: क्या WebDriver एक प्रोग्रामिंग भाषा है?

WebDriver एक ब्राउज़र-कंट्रोल इंटरफ़ेस और प्रोटोकॉल है, प्रोग्रामिंग भाषा नहीं। क्लाइंट लाइब्रेरीज़ इसकी ऑपरेशन्स को उन भाषाओं के माध्यम से उजागर करती हैं जिनका उपयोग ऑटोमेशन एप्लिकेशन करते हैं।

प्रश्न: क्या Selenium और WebDriver एक ही चीज़ हैं?

Selenium और WebDriver अलग परतों की पहचान करते हैं। Selenium एक ऑटोमेशन इकोसिस्टम प्रदान करता है, जबकि WebDriver एक ब्राउज़र-कंट्रोल कॉन्ट्रैक्ट परिभाषित करता है जिसका उपयोग इसके क्लाइंट करते हैं।

प्रश्न: पहले से मिला हुआ कोई एलिमेंट स्टेल क्यों हो जाता है?

जब किसी एलिमेंट का संदर्भित डॉक्युमेंट नोड मौजूदा पेज स्टेट के लिए मान्य नहीं रहता, तो वह स्टेल हो जाता है। नेविगेशन या कंपोनेंट रिप्लेसमेंट वह नोड अलग कर सकते हैं, भले ही कोई समान कंट्रोल दिखाई देता रहे।

प्रश्न: क्या WebDriver सत्र का मतलब होता है कि वेबसाइट लॉगिन सक्रिय है?

WebDriver सत्र कोई वेबसाइट लॉगिन स्थापित नहीं करता। ऑटोमेशन कनेक्शन स्टेट और एप्लिकेशन ऑथेंटिकेशन अलग जीवनचक्र हैं।

प्रश्न: क्या WebDriver उसी कंप्यूटर पर ब्राउज़र को नियंत्रित कर सकता है?

WebDriver किसी लोकल रिमोट एंड के माध्यम से उसी कंप्यूटर पर ब्राउज़र को नियंत्रित कर सकता है। प्रोटोकॉल की सीमा ब्राउज़र के भौतिक स्थान से अलग रहती है।

संदर्भ