वेबड्राइवर क्या है? ब्राउज़र ऑटोमेशन मानक की व्याख्या

वेबड्राइवर क्या है? ब्राउज़र ऑटोमेशन मानक की व्याख्या

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

TL;DR

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

वेबड्राइवर ऑटोमेशन और ब्राउज़र के बीच का अनुबंध है।

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

W3C वेबड्राइवर विनिर्देशन वेबड्राइवर को दूरस्थ ब्राउज़र नियंत्रण के लिए एक प्लेटफ़ॉर्म- और भाषा-न्यूट्रल वायर प्रोटोकॉल के रूप में परिभाषित करता है। “वायर प्रोटोकॉल” का अर्थ है इंटरऑपरेबल संदेश अनुबंध, न कि विशेष Java, Python, या JavaScript API। भाषा बाइंडिंग सुविधाजनक विधि कॉल को प्रोटोकॉल संचालन में और प्रतिक्रियाओं को भाषा-विशिष्ट वस्तुओं और अपवादों में अनुवाद करती हैं। यह पृथक्करण उपकरणों और सेवाओं को एक सामान्य ब्राउज़र-नियंत्रण सतह साझा करने की अनुमति देता है।

स्थानीय अंत, दूरस्थ अंत, सत्र, और आदेश मॉडल को परिभाषित करते हैं।

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

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

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

तत्व और इनपुट प्रक्रिया सीमा को संदर्भों के रूप में पार करते हैं।

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

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

वेबड्राइवर ब्राउज़र संचालन को मानकीकृत करता है, न कि पूरे परीक्षण सूट को।

प्रोटोकॉल दूरस्थ-नियंत्रण सीमा को परिभाषित करता है। कई परीक्षण चिंताएँ इसके ऊपर या बगल में बैठती हैं और क्लाइंट पारिस्थितिकी तंत्र द्वारा प्रदान की जानी चाहिए।

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

जहाँ WebDriver अनुबंध मूल्यवान है

WebDriver सबसे महत्वपूर्ण होता है जब क्लाइंट, ब्राउज़रों, भाषाओं या दूरस्थ सेवाओं के बीच संगतता आर्किटेक्चर का हिस्सा होती है।

क्रॉस-ब्राउज़र परीक्षण

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

दूरस्थ ब्राउज़र सेवाएँ

एक परीक्षण चालक किसी अन्य मशीन या होस्ट किए गए प्लेटफ़ॉर्म पर एक ही प्रोटोकॉल सीमा के माध्यम से सत्र बना सकता है जो स्थानीय ऑटोमेशन के लिए उपयोग की जाती है।

बहु-भाषा संगठन

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

ब्राउज़र उपकरण

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

क्लासिक WebDriver जानबूझकर आदेश-उन्मुख है

क्लासिक WebDriver नेविगेटिंग, तत्व खोजने, क्लिक करने, पाठ पढ़ने, या स्क्रीनशॉट लेने जैसी विशिष्ट संचालन के लिए अच्छी तरह से काम करता है। निरंतर ब्राउज़र संकेत सख्त आदेश-प्रतिक्रिया की अदला-बदली में अधिक स्वाभाविक नहीं होते हैं। ग्राहकों ने पारंपरिक रूप से अधिक समृद्ध घटना धाराओं के लिए मतदान, विक्रेता विस्तार, या ब्राउज़र-विशिष्ट प्रोटोकॉल का उपयोग किया है। WebDriver BiDi उस अंतर को सदस्यता और असीमित घटनाओं के साथ संबोधित करता है जबकि ब्राउज़रों में मानकों के अनुबंध को बनाए रखते हुए।

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

ए WebDriver एकीकरण चेकलिस्ट

एक स्थिर एकीकरण प्रोटोकॉल सत्र, पर्यावरण, आदेश, और एप्लिकेशन स्पष्टता को प्रारंभ से अंत तक अवलोकनीय बनाता है।

  1. अनुरोधित क्षमताओं को रिकॉर्ड करें। ब्राउज़र, संस्करण, प्लेटफ़ॉर्म, प्रॉक्सी, प्रॉंप्ट, प्रमाणपत्र, पृष्ठ-लोड रणनीति, और विक्रेता विकल्पों को संस्करणीकृत कॉन्फ़िगरेशन में रखें।
  2. मेल खाने वाली क्षमताओं को कैप्चर करें। दूरस्थ अंत द्वारा लौटाए गए मूल्यों को स्टोर करें ताकि एक विफलता को वास्तव में चलाए गए ब्राउज़र वातावरण से जोड़ा जा सके।
  3. सत्र के स्वामित्व का प्रबंधन करें। निर्धारण के आधार पर सत्रों को बनाएँ और हटाएँ, समयसीमाएँ निर्धारित करें, और अप्रासंगिक परीक्षणों को ब्राउज़र प्रोफ़ाइल या परिवर्तनीय आवेदन डेटा साझा करने से रोकें।
  4. शर्त-आधारित समन्वय का उपयोग करें। अगले ऑपरेशन द्वारा आवश्यक एप्लिकेशन स्थिति के लिए प्रतीक्षा करें बजाय इसके कि नेविगेशन पूर्णता यह मान ले कि हर गतिशील तत्व तैयार है।
  5. तत्व के जीवनकाल को संभालें। उपयोग के निकट तत्वों का पता लगाएँ, नेविगेशन या DOM प्रतिस्थापन के बाद संदर्भों के पुराने होने की अपेक्षा करें, और चयनकर्ताओं को भावार्थात्मक पृष्ठ व्यवहार से जुड़े रखें।
  6. प्रोटोकॉल साक्ष्य को बनाए रखें। कमांड नाम, मूल त्रुटि, सत्र आईडी, ब्राउज़र वातावरण, स्क्रीनशॉट, और प्रासंगिक लॉग को बिना गोपनीयताओं को उजागर किए रखें।
  7. दूरस्थ सीमाओं का परीक्षण करें। फाइल स्थानांतरण, डाउनलोड, विंडो, अनुमतियाँ, नेटवर्क नीतियों, और वास्तविक दूरस्थ सेवा पर कलाकृतियों को मान्य करें; स्थानीय व्यवहार पर्याप्त साक्ष्य नहीं है।
  8. BiDi आवश्यकताओं को अलग से ट्रैक करें। घटनाओं या मॉड्यूल की सूची बनाएं जो WebDriver BiDi की आवश्यकता है और क्लासिक आदेश या ब्राउज़र-विशिष्ट एकीकरण को प्रतिस्थापित करने से पहले वर्तमान ब्राउज़र और क्लाइंट समर्थन की पुष्टि करें।

Managed Browser Architecture में WebDriver अवधारणाएँ

प्रबंधित ब्राउज़र सेवाएँ उस समान वास्तुविद्या विभाजन का पालन करती हैं जो WebDriver को उपयोगी बनाती है: एप्लिकेशन लॉजिक एक स्थान पर चल सकता है जबकि ब्राउज़र कहीं और चलता है। Scrapeless Scraping Browser उन समर्थित ऑटोमेशन क्लाइंट और गतिशील वेब-डेटा वर्कफ़्लो के लिए उस दूरस्थ ब्राउज़र अवसंरचना की आपूर्ति करता है।

चुने हुए क्लाइंट द्वारा समर्थित वास्तविक प्रोटोकॉल और विशेषता सतह को मान्य करें बजाय इसके कि यह मानने के लिए कि हर दूरस्थ ब्राउज़र एंडपॉइंट WebDriver क्लासिक को लागू करता है। वर्तमान की समीक्षा करें Scrapeless Scraping Browser उत्पाद अवलोकन, Scrapeless Scraping Browser प्रारंभ-से-documents, और Scrapeless मूल्य निर्धारण एक संचालन मॉडल चुनने से पहले।

निष्कर्ष: WebDriver परस्परता परत है

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

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

रीमोट ब्राउज़र इंफ्रास्ट्रक्चर का आकलन करने के लिए तैयार हैं?

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

फ्री शुरू करें →

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

क्या वेबड्राइवर सेलिनियम के समान है?

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

वेबड्राइवर को ब्राउज़र ड्राइवर की आवश्यकता क्यों है?

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

वेबड्राइवर क्षमताएँ क्या हैं?

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

क्या वेबड्राइवर दूरस्थ रूप से काम करता है?

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

वेबड्राइवर और वेबड्राइवर बायडी के बीच क्या अंतर है?

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

संदर्भ