2014-04-15 13 views
7

सेमेनियम परीक्षण डेवलपर होने के दृश्यों के पीछे, मैंने हमेशा वेबड्राइवर का उपयोग ज्ञान के साथ किया जो टेस्ट स्क्रिप्ट विकसित करने में टूल के उपयोग तक ही सीमित था। लेकिन मुझे यह जानकर उत्सुकता है कि WebDriver ब्राउज़र पर किसी पृष्ठ के साथ कैसे इंटरैक्ट करता है आंतरिक रूप से
सेलेनियम

मेरे प्रश्न हैं:

  1. मैंने पढ़ा है कि webdriver बजाय सेलेनियम आर सी की तरह जावास्क्रिप्ट को क्रियान्वित करने के ब्राउज़र के स्वचालन इंजन के साथ सीधे सूचना का आदान प्रदान। क्या इसका मतलब यह है कि WebDriver आंतरिक रूप से जावास्क्रिप्ट निष्पादित नहीं करता है?
    क्या इसका मतलब यह है कि डीओएम के साथ बातचीत करने के एक से अधिक तरीके हैं? मैं विश्वास कर रहा था कि ब्राउजर पर डीओएम को एक्सेस/पार्स करने का एकमात्र तरीका जावास्क्रिप्ट है।
  2. सेलेनियम आरसी ने उसी मूल नीति की समस्या को खत्म करने के लिए प्रॉक्सी का उपयोग किया। वेबड्राइवर समान मूल नीति की समस्या को कैसे संबोधित कर रहा है?

  3. वेबड्राइवर JSON वायर प्रोटोकॉल का उपयोग करता है। लेकिन के घटकों में वेबड्राइवर JSON वायर प्रोटोकॉल का उपयोग किया जाता है? क्या यह विभिन्न ब्राउज़रों के ड्राइवरों में उपयोग किया जाता है? या यह भाषा बाइंडिंग एपीआई में प्रयोग किया जाता है?

  4. जब मेरे कोड है: WebDriver driver = new ChromeDriver(); driver.get(" http://www.google.com "); WebElement searchField = driver.findElement(By.name("q")); searchField.sendKeys("selenium"); कैसे डोम WebDriver द्वारा पहुँचा है जब ऊपर कोड निष्पादित किया जाता?

यह वास्तव में मदद करेगा अगर कोई मुझे विवरण में इन्हें समझा सकता है। मैं इस विषय की खोज करने में किसी की भी मदद करने के लिए वेबड्राइवर के आंतरिक कामकाज के संबंध में एक समुदाय विकी बनाना चाहता हूं। अग्रिम में धन्यवाद!

+0

आप बिंदु 3 से क्या मतलब है, "डोम कैसे पहुंचाया जाता है?" – Arran

+0

उदाहरण के लिए, जब मैं document.getElementById() निष्पादित करता हूं तो एक जावास्क्रिप्ट ऑब्जेक्ट देता है जो DOM पर एक तत्व का प्रतिनिधित्व करता है। क्या यह सभी वेबड्राइवर बाध्यकारी एपिस के साथ समान रूप से काम करता है?क्या गोलाकार में डीओएम पर किसी तत्व का संदर्भ होता है? –

+0

लोग इस प्रश्न को बंद करने के लिए मतदान कर रहे हैं - मैं जानना चाहूंगा कि सवाल क्यों बंद हो रहा है ?? कोई वैध कारण? –

उत्तर

4

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

इसलिए प्रत्येक वेबड्राइवर कमांड को वेबडिवर सेवा के माध्यम से एक HTTP विधि में मैप किया जाता है, और फिर ब्राउज़र के साथ संवाद करने के लिए HTTP कमांड प्रोसेसर पर भेज दिया जाता है। कमांड प्रतिक्रिया वेबडिवर सेवा के माध्यम से HTTP/1.1 प्रतिक्रिया संदेश के रूप में लौटा दी जाती है।

फ़ायरफ़ॉक्स ड्राइवर और आईई चालक जैसे विभिन्न ड्राइवरों के ऊपर उपरोक्त को पूरा करने के लिए अलग-अलग कार्यान्वयन हैं।

नीचे लिखे गए सेलेनियम वेबड्राइवर आर्किटेक्चर दस्तावेज़ को इन्हें कैसे कार्यान्वित किया जाता है और कैसे वेबड्राइवर कमांड ब्राउज़र और पीछे के माध्यम से प्रवाह के बारे में और जानकारी देता है। फ़ायरफ़ॉक्स ड्राइवर पर विवरण के लिए खंड 16.6 पढ़ें।

The Architecture of Open Source Applications - Selenium WebDriver
साइमन स्टीवर्ट (सेलेनियम परियोजना के लिए WebDriver के निर्माता, और कोर योगदानकर्ता)

इसके अलावा द्वारा, The WebDriver Wire Protocol पर विवरण को समझने के HTTP विधियों मैप की जाती हैं में सहायक होगा।

+0

डाउनवॉटर - टिप्पणी करने की देखभाल? ओपी ने वेबड्राइवर के आंतरिक कार्यों के लिए कहा है और मैंने उसे अपने डिजाइन और वास्तुकला से लिंक दिया है। – Faiz

+0

इसके लिए धन्यवाद। हालांकि, मैं साइमन स्टीवर्ट लिखित वास्तुकला लेख पढ़ने से परहेज करना पसंद करूंगा। मैंने पूरा पृष्ठ पढ़ा और बहुत कम समझ लिया। मैं चाहूंगा कि कोई मुझे इस तरह से समझा सकता है कि एक औसत परीक्षण स्वचालन व्यक्ति समझ सकता है। –