अच्छी तरह से, विस्तार से अंतर को समझाने की कोशिश करेगा।
समांतर परीक्षण के बारे में बोलते हुए, सेलेनियम ग्रिड का उपयोग करना बेहतर होता है। सेलेनियम आरसी और सेलेनियम ग्रिड की मूल अवधारणा।
आप अधिक विवरण here
सेलेनियम webDriver के बारे में कुछ शब्द में प्राप्त कर सकते हैं:
सेलेनियम 2.0 में प्राथमिक नई सुविधा WebDriver एपीआई के एकीकरण है। वेबड्राइवर को सेलेनियम-आरसी एपीआई में कुछ सीमाओं को संबोधित करने के साथ-साथ एक सरल, अधिक संक्षिप्त प्रोग्रामिंग इंटरफ़ेस प्रदान करने के लिए डिज़ाइन किया गया है। सेलेनियम-वेबड्राइवर को गतिशील वेब पृष्ठों का बेहतर समर्थन करने के लिए विकसित किया गया था, जहां पेज के तत्व पृष्ठ को बिना लोड किए जा सकते हैं। वेबड्राइवर का लक्ष्य एक अच्छी तरह से डिज़ाइन किया गया ऑब्जेक्ट उन्मुख API प्रदान करना है जो आधुनिक उन्नत वेब-ऐप परीक्षण समस्याओं के लिए बेहतर समर्थन प्रदान करता है।
वेबड्राइवर 'ड्राइव' ब्राउज़र सेलेनियम-आरसी की तुलना में कैसे करता है?
सेलेनियम-वेबड्राइवर ऑटोमेशन के लिए प्रत्येक ब्राउज़र के मूल समर्थन का उपयोग करके ब्राउज़र को सीधे कॉल करता है। ये सीधी कॉल कैसे की जाती हैं, और वे जिन सुविधाओं का समर्थन करते हैं, वे उस ब्राउज़र पर निर्भर करते हैं जिसका आप उपयोग कर रहे हैं। प्रत्येक अध्याय में बाद में प्रत्येक 'ब्राउज़र चालक' पर जानकारी प्रदान की जाती है। सेलेनियम-आरसी से परिचित लोगों के लिए, यह आपके द्वारा उपयोग किए जाने वाले कार्यों से काफी अलग है। सेलेनियम-आरसी ने प्रत्येक समर्थित ब्राउज़र के लिए एक ही तरीके से काम किया। ब्राउज़र को लोड होने पर ब्राउज़र में जावास्क्रिप्ट फ़ंक्शंस को इंजेक्शन दिया गया था और उसके बाद ब्राउज़र में AUT ड्राइव करने के लिए अपने जावास्क्रिप्ट का उपयोग किया गया था। WebDriver इस तकनीक का उपयोग नहीं करता है। फिर, यह ब्राउज़र को ऑटोमेशन के लिए समर्थित समर्थन के ब्राउज़र का उपयोग करके सीधे चलाता है।
WebDriver और सेलेनियम-सर्वर
आप हो सकता है, या नहीं हो सकता,, सेलेनियम सर्वर की जरूरत है आप सेलेनियम-WebDriver का कैसे उपयोग करने पर निर्भर करता है। यदि आप केवल वेबड्राइवर एपीआई का उपयोग करेंगे तो आपको सेलेनियम-सर्वर की आवश्यकता नहीं है। यदि आपका ब्राउज़र और परीक्षण सभी एक ही मशीन पर चलेंगे, और आपके परीक्षण केवल वेबड्राइवर एपीआई का उपयोग करेंगे, तो आपको सेलेनियम-सर्वर चलाने की आवश्यकता नहीं है; वेबड्राइवर ब्राउज़र को सीधे चलाएगा। सेलेनियम-वेबड्राइवर के साथ सेलेनियम-सर्वर का उपयोग करने के कुछ कारण हैं।
- आप सेलेनियम ग्रिड का उपयोग कर रहे मशीनों या आभासी मशीन (VMs) एकाधिक पर अपने परीक्षण वितरित करने के लिए।
- आप एक दूरस्थ मशीन से कनेक्ट करना चाहते हैं जिसमें एक विशेष ब्राउज़र संस्करण है जो आपकी वर्तमान मशीन पर नहीं है।
- आप जावा बाइंडिंग (यानी अजगर, सी #, या रूबी) और का उपयोग कर
सेलेनियम-WebDriver के ड्राइवर का उपयोग करने के HtmlUnit ड्राइवर चाहते हैं नहीं कर रहे हैं WebDriver के खिलाफ कुंजी इंटरफेस का नाम है कौन से परीक्षण लिखे जाने चाहिए, लेकिन कई कार्यान्वयन हैं। इनमें शामिल हैं:
HtmlUnit ड्राइवर यह वर्तमान में WebDriver का सबसे तेज और सबसे हल्के कार्यान्वयन है। जैसा कि नाम से पता चलता है, यह HtmlUnit पर आधारित है। HtmlUnit एक जीयूआई के बिना एक WebBrowser का जावा आधारित कार्यान्वयन है। किसी भी भाषा बाइंडिंग (जावा के अलावा) के लिए सेलेनियम सर्वर को इस ड्राइवर का उपयोग करने की आवश्यकता है।
पेशेवरों
- WebDriver
- एक शुद्ध जावा समाधान और की सबसे तेजी से कार्यान्वयन तो यह मंच स्वतंत्र है।
- का समर्थन करता है जावास्क्रिप्ट
विपक्ष
- Emulates अन्य ब्राउज़रों 'जावास्क्रिप्ट व्यवहार (नीचे देखें) लोकप्रिय ब्राउज़रों की HtmlUnit ड्राइवर कोई नहीं में
जावास्क्रिप्ट जावास्क्रिप्ट इंजन का उपयोग करता HtmlUnit (राइनो) द्वारा उपयोग किया जाता है।यदि आप HtmlUnit का उपयोग करके जावास्क्रिप्ट का परीक्षण करते हैं तो परिणाम उन ब्राउज़रों से काफी भिन्न हो सकते हैं। जब हम "जावास्क्रिप्ट" कहते हैं तो हम वास्तव में "जावास्क्रिप्ट और डोम" का अर्थ देते हैं। हालांकि डब्ल्यूओएम द्वारा डब्ल्यूओएम को परिभाषित किया गया है, प्रत्येक ब्राउज़र के पास अपने स्वयं के quirks और डीओएम के कार्यान्वयन में अंतर है और कैसे जावास्क्रिप्ट इसके साथ बातचीत करता है। एचटीएमएल यूनिट के पास डीओएम का प्रभावशाली पूर्ण कार्यान्वयन है और जावास्क्रिप्ट का उपयोग करने के लिए इसका अच्छा समर्थन है, लेकिन यह किसी भी अन्य ब्राउज़र से अलग नहीं है: इसके डब्लू 3 सी मानक और प्रमुख ब्राउज़रों के डीओएम कार्यान्वयन दोनों के अपने मतभेद और अंतर हैं, इसके बावजूद अन्य ब्राउज़रों की नकल करने की क्षमता। वेबड्राइवर के साथ, हमें एक विकल्प बनाना पड़ा; क्या हम HtmlUnit की जावास्क्रिप्ट क्षमताओं को सक्षम करते हैं और उन समस्याओं में चलने वाली टीमों का जोखिम चलाते हैं जो केवल स्वयं को प्रकट करते हैं, या क्या हम जावास्क्रिप्ट को अक्षम करते हैं, यह जानकर कि जावास्क्रिप्ट पर निर्भर होने वाली अधिक से अधिक साइटें हैं? हमने रूढ़िवादी दृष्टिकोण लिया, और जब हम HtmlUnit का उपयोग करते हैं तो डिफ़ॉल्ट रूप से समर्थन अक्षम कर दिया गया है। WebDriver और HtmlUnit दोनों की प्रत्येक रिलीज के साथ, हम इस निर्णय को पुन: प्राप्त करते हैं: हम कुछ बिंदु पर HtmlUnit पर डिफ़ॉल्ट रूप से जावास्क्रिप्ट को सक्षम करने की उम्मीद करते हैं।
webDriver के सेटअप में गहरी जांच करने के लिए this
HtmlUnit documentation से देखें: HtmlUnit एक सामान्य इकाई परीक्षण ढांचा नहीं है। यह विशेष रूप से परीक्षण उद्देश्यों के लिए ब्राउज़र को अनुकरण करने का एक तरीका है और इसका उद्देश्य अन्य परीक्षण ढांचे जैसे जुनीट या टेस्टएनजी के भीतर उपयोग किया जाना है।
तो सेलेनियम और HtmlUnit अंतर समाप्त करने के लिए: HtmlUnit एक तरह से परीक्षण प्रयोजनों के लिए एक ब्राउज़र अनुकरण और सेलेनियम-WebDriver प्रत्यक्ष कॉल करता है एक जीयूआई और बिना एक WebBrowser की एक जावा आधारित कार्यान्वयन है स्वचालन के लिए प्रत्येक ब्राउज़र के मूल समर्थन का उपयोग कर ब्राउज़र में। हम देख सकते हैं कि HtmlUnit स्वचालन के लिए जीयूआई संभावना के बिना एपीआई प्रदान करता है जबकि वेबड्राइवर स्वचालन के लिए आंतरिक ब्राउज़र की संभावनाएं प्रदान करता है।
मोबाइल स्वचालन बारे में बोलते हुए सेलेनियम भी एक iPhone ड्राइवर है iPhone Driver wiki article और एंड्रॉयड ड्राइवर Android Driver wiki article
भी देखें this presentation
दुर्भाग्य से मैं आप मोबाइल चालकों के मेरे कार्य अनुभव मूल्यांकन मैं के रूप में नहीं दे सकता वेब स्वचालन से निपटें (कोई मोबाइल नहीं)। यह भी पता है कि Cucumber
(स्वचालन उपकरण) मोबाइल automators के बीच लोकप्रिय है। this और this देखें।
यह अब आप के लिए एक लील थोड़ा और अधिक स्पष्ट आ आशा =)
आप PhantomJS का उपयोग कर या "बिना सिर क्रोम" के बारे में सोचा है बजाय ? – djangofan