विषयसूची:
- चरण 1: सॉफ़्टवेयर स्थापना
- चरण 2: मूल परीक्षण स्क्रिप्ट
- चरण 3: टेस्ट स्क्रिप्ट चलाएँ
- चरण 4: उदाहरण वेब साइट
- चरण 5: विशिष्ट उदाहरण
- चरण 6: टिप्स और ट्रिक्स
- चरण 7: अधिक संसाधन
- चरण 8: निष्कर्ष
वीडियो: वेब ड्राइवर IO ट्यूटोरियल एक लाइव वेब साइट का उपयोग करना और कार्य उदाहरण: 8 कदम
2024 लेखक: John Day | [email protected]. अंतिम बार संशोधित: 2024-01-30 09:22
वेब ड्राइवर आईओ ट्यूटोरियल एक लाइव वेब साइट और कार्य उदाहरण का उपयोग कर रहा है
अंतिम अद्यतन: 2015-26-07
(अधिक विवरण और उदाहरणों के साथ इस निर्देश को अपडेट करते समय अक्सर जांचें)
पृष्ठभूमि
हाल ही में मेरे सामने एक दिलचस्प चुनौती पेश की गई थी। मुझे बहुत कम तकनीकी अनुभव और बिना प्रोग्रामिंग पृष्ठभूमि वाले प्रश्नोत्तर विभाग में स्वचालित परीक्षण शुरू करने की आवश्यकता थी।
यह वास्तव में दो (2) अलग-अलग चुनौतियाँ थीं। पहला स्वचालित परीक्षण करने के लिए प्रौद्योगिकियों की पहचान करना था। दूसरा प्रश्नोत्तर विभाग को प्रशिक्षित करना था।
लेख केवल उपयोग की जाने वाली तकनीकों और इस प्रक्रिया में मैंने जो सीखा, उसे संबोधित करेगा।
प्रौद्योगिकियों ने अच्छी तरह से काम किया लेकिन मुझे वास्तव में जानकारी की खोज करनी पड़ी और मुद्दों का पता लगाने में कई घंटे लग गए।
मुझे इन सभी तकनीकों के बारे में इंटरनेट पर एक साथ काम करने के बारे में जानकारी खोजने में मुश्किल हुई।
मैं इस जानकारी को साझा करना चाहता था, इसलिए मैंने इस लेख को काम करने वाले उदाहरण परीक्षण स्क्रिप्ट और स्क्रिप्ट चलाने के लिए एक परीक्षण वेब साइट के साथ लिखा था।
सभी परीक्षण स्क्रिप्ट जीथब पर पाई जा सकती हैं और वर्किंग टेस्ट साइट वेब ड्राइवर आईओ ट्यूटोरियल टेस्ट साइट पर स्थित है
मुझे उम्मीद है कि आप इसे उपयोगी पाएँ। यदि आप करते हैं, कृपया मुझे बताए।
उद्देश्यों के लिए प्रौद्योगिकियों का उपयोग करें:
- वेब साइट की कार्यक्षमता का परीक्षण करें
- जावास्क्रिप्ट कार्यक्षमता का परीक्षण करें
- मैन्युअल रूप से चलाया जा सकता है
- स्वचालित रूप से चलाया जा सकता है
-
गैर प्रोग्रामर के लिए भाषा सीखना आसान
एचटीएमएल और जावास्क्रिप्ट के बुनियादी ज्ञान के साथ क्यू/ए कर्मियों
- केवल ओपन सोर्स सॉफ्टवेयर का प्रयोग करें
प्रौद्योगिकियों
मेरे द्वारा चुनी गई तकनीकों की सूची:
- मोचा - परीक्षण धावक - परीक्षण स्क्रिप्ट निष्पादित करता है
- shouldjs - अभिकथन पुस्तकालय
- वेबड्राइवरियो - ब्राउज़र नियंत्रण बाइंडिंग (भाषा बाइंडिंग)
- सेलेनियम - ब्राउज़र एब्स्ट्रैक्शन और रनिंग फ़ैक्टरी
-
ब्राउज़र/मोबाइल ड्राइवर + ब्राउज़र
- फ़ायरफ़ॉक्स (केवल ब्राउज़र)
- क्रोम (ब्राउज़र और ड्राइवर)
- आईई (ब्राउज़र और ड्राइवर)
- सफारी (ब्राउज़र और ड्राइवर प्लग-इन)
चरण 1: सॉफ़्टवेयर स्थापना
आरंभ करने के लिए आपके पास नोड जेएस, वेब ड्राइवर आईओ, मोचा, चाहिए और सेलेनियम स्टैंड अलोन सर्वर स्थापित होना चाहिए।
यहां विंडोज 7 के लिए इंस्टॉलेशन निर्देश दिए गए हैं।
(मैं एक मैक/लिनक्स उपयोगकर्ता हूं लेकिन मुझे विंडोज 7 मशीनों पर सब कुछ स्थापित करना था, यही कारण है कि मैंने इसे आपके संदर्भ के लिए शामिल किया है। मैक/लिनक्स पर स्थापित करने की प्रक्रिया समान है। कृपया अधिक के लिए ऑनलाइन संदर्भों से परामर्श लें जानकारी।)
एक ब्राउज़र से:
- नोड स्थापित करें जिसमें एनपीएम (नोड पैकेज मैनेजर) शामिल है
-
https://nodejs.org/ पर जाएं
- इंस्टॉल पर क्लिक करें
- फ़ाइल सहेजें और चलाएं
- पथ और चर सेट करें (NODE_PATH)
-
कंट्रोल पैनल पर जाएं-> सिस्टम और सुरक्षा-> सिस्टम
- उन्नत सिस्टम सेटिंग्स
-
पर्यावरण सेटिंग (उपयोगकर्ता चर)
-
पथ में जोड़ें
सी:\उपयोगकर्ता\{USERNAME}\AppData\रोमिंग\npm;
-
NODE_PATH जोड़ें (सिस्टम चर)
C:\Users\{USERNAME}\AppData\Roaming\npm\node_modules
-
नोट: मैंने npm वैश्विक विकल्प (-g) का उपयोग करके नीचे सभी सॉफ़्टवेयर स्थापित किए हैं। यह आमतौर पर अनुशंसित नहीं है, लेकिन इस स्थापना के लिए मुझे विश्व स्तर पर स्थापित करने की आवश्यकता है क्योंकि इसका उपयोग कई परियोजनाओं में किया जाएगा।
ओपन कमांड प्रॉम्प्ट (cmd):
(स्थानीय उपयोगकर्ता व्यवस्थापक)
-
सेलेनियम "वेब ड्राइवर आईओ" स्थापित करें
-
npm webdriverio -g. स्थापित करें
यह आपकी मशीन पर विश्व स्तर पर वेब ड्राइवर IO स्थापित करेगा
-
-
"मोचा" टेस्ट रनर सॉफ्टवेयर स्थापित करें
-
npm मोचा -g. स्थापित करें
यह आपकी मशीन पर विश्व स्तर पर मोचा स्थापित करेगा
-
-
"चाहिए" अभिकथन पुस्तकालय स्थापित करें
-
npm इंस्टाल करना चाहिए -g
यह आपकी मशीन पर विश्व स्तर पर "चाहिए" स्थापित करेगा
-
-
सेलेनियम स्टैंड अलोन सर्वर स्थापित करें
- https://www.seleniumhq.org/download/ पर जाएं
- जार फ़ाइल डाउनलोड करें और "सेलेनियम" निर्देशिका में जाएं।
-
परीक्षण करने के लिए ब्राउज़र और ब्राउज़र ड्राइवर स्थापित करें
-
cmd प्रॉम्प्ट से:
- "सेलेनियम" निर्देशिका बनाएँ
- सी:\उपयोगकर्ता\{USERNAME}\selenium
-
आदेश:
- सीडी सी:\उपयोगकर्ता\{USERNAME}
- एमकेडीआईआर सेलेनियम
-
फ़ायर्फ़ॉक्स
- फ़ायरफ़ॉक्स ब्राउज़र स्थापित करें, यदि पहले से स्थापित नहीं है।
- फ़ायरफ़ॉक्स को कमांड प्रॉम्प्ट (cmd) से शुरू करने के लिए पथ सेट करना होगा।
-
नियंत्रण कक्ष-> प्रणाली और सुरक्षा-> प्रणाली
- उन्नत सिस्टम सेटिंग्स
- पर्यावरण सेटिंग्स
- पथ चर में जोड़ें (अर्ध-बृहदान्त्र का उपयोग करें) जोड़ें
- C:\Program Files (x86)\Mozilla Firefox
- फ़ायरफ़ॉक्स के लिए किसी विशेष वेब ड्राइवर की आवश्यकता नहीं है।
-
क्रोम
- क्रोम ब्राउज़र स्थापित करें, यदि पहले से स्थापित नहीं है।
- Chrome को कमांड प्रॉम्प्ट (cmd) से प्रारंभ करने के लिए पथ MAY सेट किया जा सकता है।
- पहले परीक्षण करें: कमांड प्रॉम्प्ट से chrome.exe (cmd)
- यदि क्रोम प्रारंभ नहीं होता है तो:
-
नियंत्रण कक्ष-> प्रणाली और सुरक्षा-> प्रणाली
- उन्नत सिस्टम सेटिंग्स
- पर्यावरण सेटिंग्स
- पथ चर में जोड़ें (अर्ध-बृहदान्त्र का उपयोग करें) जोड़ें
- C:\Program Files (x86)\Google\Chrome\Application\chrome.exe
-
Chrome के लिए एक विशेष वेब ड्राइवर की आवश्यकता होती है।
chromium.org पर जाएं और 32 बिट ड्राइवर को "सेलेनियम" डायरेक्टरी में अनज़िप करें।
-
इंटरनेट एक्सप्लोरर (केवल विंडोज़ के लिए - अन्य प्लेटफॉर्म पर काम नहीं करेगा)
-
IE के लिए एक विशेष वेब ड्राइवर की आवश्यकता होती है।
- https://www.seleniumhq.org/download/ पर जाएं
- 64 बिट ड्राइवर को "सेलेनियम" निर्देशिका में डाउनलोड और अनज़िप करें।
-
-
चरण 2: मूल परीक्षण स्क्रिप्ट
आइए कुछ बुनियादी बातों से शुरू करते हैं।
यहां एक साधारण मोचा स्क्रिप्ट है जो एक वेब साइट खोलेगी और शीर्षक को सत्यापित करेगी।
// ट्यूटोरियल1.js
// // यह एक वेबसाइट खोलने के लिए एक सरल परीक्षण स्क्रिप्ट है और // शीर्षक को मान्य करें। // आवश्यक पुस्तकालय var webdriverio = आवश्यकता ('webdriverio'), चाहिए = आवश्यकता ('चाहिए'); // एक परीक्षण स्क्रिप्ट ब्लॉक या सूट का वर्णन ('वेब ड्राइवर आईओ के लिए शीर्षक परीक्षण - ट्यूटोरियल टेस्ट पेज वेबसाइट', फ़ंक्शन() {// सेट टाइमआउट 10 सेकंड के लिए यह। टाइमआउट (10000); var ड्राइवर = {}; // परीक्षण से पहले चलाने के लिए हुक (फ़ंक्शन (किया गया) {// ब्राउज़र ड्राइवर के लिए ड्राइवर लोड करें = webdriverio.remote ({वांछित क्षमताएं: {ब्राउज़रनाम: 'फ़ायरफ़ॉक्स'}}); ड्राइवर.इनिट (किया गया);}); // एक परीक्षण युक्ति - "विनिर्देश" यह ('सही पृष्ठ और शीर्षक लोड होना चाहिए', फ़ंक्शन () {// लोड पृष्ठ, फिर कॉल फ़ंक्शन() वापसी ड्राइवर.url ('https://www.tlkeith.com/WebDriverIOTutorialTest.html') // शीर्षक प्राप्त करें, फिर शीर्षक को फ़ंक्शन ().getTitle ()। फिर (फ़ंक्शन (शीर्षक) {// शीर्षक सत्यापित करें (शीर्षक)। should.be.equal ("वेब ड्राइवर आईओ - ट्यूटोरियल टेस्ट पेज) "); // कंसोल डिबग के लिए असहजता) {driver.end(किया गया); }); });
अवलोकन:
- आपको सबसे पहले ध्यान देना चाहिए कि परीक्षण स्क्रिप्ट JAVASCRIPT (.js एक्सटेंशन में समाप्त होती है) में लिखी गई है।
-
सभी परीक्षण लिपियों के लिए मूल संरचना लगभग समान है।
- हैडर टिप्पणियाँ (//)
- आवश्यक पुस्तकालय
- विकल्प सेट करें (वैकल्पिक)
- हुक: लोड ब्राउज़र ड्राइवर
- टेस्ट सूट (वर्णन करें)
- परीक्षण विनिर्देश (एक सूट में कई विनिर्देश हो सकते हैं)
- हुक: साफ करें
-
परीक्षण सूट एक वर्णन फ़ंक्शन से शुरू होता है जो दो पैरामीटर लेता है:
-
स्ट्रिंग - परीक्षण सूट का विवरण
- "उचित शब्दजाल के लिए पृष्ठ की जाँच करें"
- "रेडियो बटन संचालन सत्यापित करें"
-
फ़ंक्शन - निष्पादित करने के लिए कोड का ब्लॉक
वर्णन करें ('टेस्ट सूट का विवरण', फ़ंक्शन() {});
-
- परीक्षण सूट में 1 या अधिक परीक्षण विनिर्देश होंगे (विनिर्देश)
-
चश्मा इसके साथ शुरू होता है जो दो पैरामीटर लेता है:
-
स्ट्रिंग - परीक्षण विनिर्देश का विवरण
- "सही लिंक टेक्स्ट और लिंक यूआरएल होना चाहिए"
- "सही शब्दावली होनी चाहिए (कॉपी डेक)
- फ़ंक्शन - निष्पादित करने के लिए कोड का ब्लॉक
- यह ('परीक्षण विनिर्देश का विवरण', फ़ंक्शन() {});
-
- एक युक्ति में एक या अधिक अपेक्षाएँ होती हैं जो कोड की स्थिति का परीक्षण करती हैं
-
इन्हें अभिकथन कहा जाता है
"चाहिए" पुस्तकालय अभिकथन प्रदान करता है
-
लगभग सभी मामलों में, आपको चयनकर्ता का उपयोग करके एक या अधिक तत्वों का पता लगाने की आवश्यकता होगी, फिर तत्वों पर कुछ ऑपरेशन करें।
-
उदाहरण:
- किसी पृष्ठ पर टेक्स्ट ढूंढें और टेक्स्ट सत्यापित करें
- एक फॉर्म भरें और सबमिट करें
- किसी तत्व का CSS सत्यापित करें
-
आइए टिप्पणियों के साथ उदाहरण पर करीब से नज़र डालें।
आवश्यक पुस्तकालयों को लोड करें: वेब ड्राइवर IO और चाहिए।
// आवश्यक पुस्तकालय
var webdriverio = आवश्यकता ('webdriverio'), चाहिए = आवश्यकता ('चाहिए');
परीक्षण सूट को परिभाषित करें। इस सूट को कहा जाता है: "वेब ड्राइवर आईओ के लिए शीर्षक परीक्षण - ट्यूटोरियल टेस्ट पेज वेबसाइट"
// एक परीक्षण स्क्रिप्ट ब्लॉक या सुइट
वर्णन करें ('वेब चालक आईओ के लिए शीर्षक परीक्षण - ट्यूटोरियल टेस्ट पेज वेबसाइट', फ़ंक्शन() {…});
टाइमआउट को 10 सेकंड पर सेट करें ताकि पेज लोड करते समय स्क्रिप्ट टाइमआउट न हो।
// टाइमआउट को 10 सेकंड पर सेट करें
यह। समयबाह्य (10000);
विनिर्देशों "विनिर्देशों" को चलाने से पहले ब्राउज़र ड्राइवर को लोड करने के लिए हुक करें। इस उदाहरण में Firefox ड्राइवर लोड किया गया है।
// परीक्षण से पहले चलाने के लिए हुक
पहले (फ़ंक्शन (किया गया) {// ब्राउज़र ड्राइवर के लिए ड्राइवर लोड करें = webdriverio.remote ({वांछित क्षमताएं: {ब्राउज़रनाम: 'फ़ायरफ़ॉक्स'}}); ड्राइवर.इनिट (किया गया); });
परीक्षण विनिर्देश को परिभाषित करें।
// एक परीक्षण युक्ति - "विनिर्देश"
यह ('सही पृष्ठ और शीर्षक लोड होना चाहिए', फ़ंक्शन () {…});
वेबसाइट पेज लोड करें
.url('https://www.tlkeith.com/WebDriverIOTutorialTest.html')
शीर्षक प्राप्त करें, फिर शीर्षक को कार्य करने के लिए पास करें ()
.getTitle ()। तब (फ़ंक्शन (शीर्षक) {
… });
चाहिए अभिकथन पुस्तकालय का उपयोग करके शीर्षक सत्यापित करें।
(शीर्षक)। should.be.equal ("वेब ड्राइवर आईओ - ट्यूटोरियल टेस्ट पेज");
समाप्त होने पर ड्राइवर को छोड़ने और साफ करने के लिए हुक।
// इस ब्लॉक में सभी परीक्षणों के बाद चलाने के लिए एक "हुक"
के बाद (फ़ंक्शन (किया गया) {driver.end (किया गया);});
चरण 3: टेस्ट स्क्रिप्ट चलाएँ
अब देखते हैं कि परीक्षण स्क्रिप्ट चलाए जाने पर क्या करती है।
पहले सेलेनियम स्टैंड अलोन सर्वर शुरू करें:
-
विंडोज़ के लिए कमांड लाइन (cmd) का उपयोग करें:
- जावा -जारी
- # जावा-जार सेलेनियम-सर्वर-स्टैंडअलोन-2.46.0.jar
-
Mac या Linux के लिए, टर्मिनल खोलें:
- जावा-जारी
- $ जावा -जार सेलेनियम-सर्वर-स्टैंडअलोन-2.46.0.jar
- ऊपर स्क्रीनशॉट देखें
अगला परीक्षण स्क्रिप्ट चलाएँ:
-
विंडोज़ के लिए कमांड लाइन (cmd) का उपयोग करें:
- कहवा
- # मोचा ट्यूटोरियल1.js
-
Mac या Linux के लिए, टर्मिनल खोलें:
- कहवा
- $ मोचा ट्यूटोरियल.जेएस
- ऊपर स्क्रीनशॉट देखें
तो क्या हुआ?
मोचा स्क्रिप्ट "tutorial1.js" का आह्वान करता है। ड्राइवर ने ब्राउज़र (फ़ायरफ़ॉक्स) शुरू किया, पेज लोड किया और शीर्षक को सत्यापित किया।
चरण 4: उदाहरण वेब साइट
सभी उदाहरण इस साइट के विरुद्ध चलाए गए हैं।
उदाहरण वेब साइट यहां स्थित है: वेब ड्राइवर आईओ ट्यूटोरियल टेस्ट पेज
सभी परीक्षण स्क्रिप्ट जीथब से डाउनलोड की जा सकती हैं।
चरण 5: विशिष्ट उदाहरण
सभी कोड जीथब पर उपलब्ध हैं: जीथब पर वेब ड्राइवर आईओ ट्यूटोरियल
-
एक अनियंत्रित सूची में लिंक और लिंक टेक्स्ट सत्यापित करें - "linkTextURL1.js"
- अनियंत्रित सूची में एक है और लिंक चौथी सूची आइटम है।
- यूआरएल "https://tlkeith.com/contact.html" होना चाहिए
// सत्यापित करें हमसे संपर्क करें लिंक टेक्स्ट
it('हमसे संपर्क करें लिंक टेक्स्ट होना चाहिए', फ़ंक्शन () {वापसी ड्राइवर.getText("//ul[@id='mylist']/li[4]/a").then(function (लिंक) { कंसोल.log ('लिंक मिला:' + लिंक); (लिंक)। चाहिए। बराबर ("हमसे संपर्क करें");});}); // सत्यापित करें हमसे संपर्क करें URL इसे ('हमसे संपर्क करें URL होना चाहिए', फ़ंक्शन () {वापसी ड्राइवर.getAttribute("//ul[@id='mylist']/li[4]/a", "href").then (फ़ंक्शन (लिंक) { (लिंक) चाहिए। बराबर ("https://tlkeith.com/contact.html"); कंसोल.लॉग ('यूआरएल मिला:' + लिंक);});});
-
कॉपीराइट टेक्स्ट सत्यापित करें - "Copyright1.js"
-
कॉपीराइट पाद लेख में हैयह उदाहरण कॉपीराइट टेक्स्ट का पता लगाने के 2 अलग-अलग तरीके दिखाता है:
- तत्व चयनकर्ता के रूप में
- तत्व चयनकर्ता के रूप में xpath का उपयोग करके
-
// तत्व चयनकर्ता के रूप में आईडी का उपयोग करके कॉपीराइट टेक्स्ट सत्यापित करें
it('कॉपीराइट टेक्स्ट होना चाहिए', फंक्शन () {रिटर्न ड्राइवर.getText("#copyright").then(function (लिंक) { कंसोल.लॉग ('कॉपीराइट मिला:' + लिंक); (लिंक)। चाहिए। बराबर ("टोनी कीथ - tlkeith.com @ 2015 - सर्वाधिकार सुरक्षित।"); }); }); // तत्व चयनकर्ता के रूप में xpath का उपयोग करके कॉपीराइट टेक्स्ट को सत्यापित करें ('कॉपीराइट टेक्स्ट होना चाहिए', फ़ंक्शन () {रिटर्न ड्राइवर.getText ("//footer/center/p")। तब (फ़ंक्शन (लिंक) { कंसोल.लॉग ('कॉपीराइट मिला:' + लिंक); (लिंक)। चाहिए। बराबर ("टोनी कीथ - tlkeith.com @ 2015 - सभी अधिकार सुरक्षित।");});});
-
फ़ॉर्म फ़ील्ड भरें और सबमिट करें - "formFillSubmit1.js"
- पहला नाम, अंतिम नाम भरें और सबमिट करें, फिर परिणामों की प्रतीक्षा करें।
-
यह उदाहरण प्रथम नाम इनपुट फ़ील्ड भरने के 3 तरीके दिखाता है:
- आईडी. द्वारा
- इनपुट से xpath द्वारा
- प्रपत्र से xpath द्वारा-> इनपुट
- यह भी दिखाता है कि इनपुट फ़ील्ड को कैसे साफ़ किया जाए
// आईडी का उपयोग करके पहला नाम सेट करें: टोनी
it ('टोनी को पहला नाम सेट करना चाहिए', फ़ंक्शन () {वापसी ड्राइवर। सेटवैल्यू ("# fname", "टोनी")। getValue ("# fname")। फिर (फ़ंक्शन (ई) {(ई)।.be.equal("टोनी"); कंसोल.लॉग("प्रथम नाम:" + ई); }); }); // आईडी का उपयोग करके पहला नाम साफ़ करें ('पहला नाम साफ़ करना चाहिए', फ़ंक्शन () {वापसी ड्राइवर.clearElement("#fname").getValue("#fname").then(function (e) {(e). should.be.equal(""); console.log("पहला नाम:" + ई); }); }); // इनपुट से xpath का उपयोग करके पहला नाम सेट करें: टोनी इट ('टोनी को पहला नाम सेट करना चाहिए', फ़ंक्शन () {वापसी ड्राइवर.सेटवैल्यू ("// इनपुट [@ नाम = 'fname']", "टोनी").getValue("//input[@name='fname']").then(function (e) {(e). should.be.equal("tony"); console.log("पहला नाम:" + ई);});}); // इनपुट से xpath का उपयोग करके पहला नाम साफ़ करें ('पहला नाम साफ़ करना चाहिए', फ़ंक्शन () {वापसी ड्राइवर.clearElement("//input[@name='fname']").getValue("//input[@name='fname']").then(function (e) {(e). should.be.equal(""); console.log("First Name:" + e); }); }); // फॉर्म से xpath का उपयोग करके पहला नाम सेट करें: टोनी इट ('टोनी को पहला नाम सेट करना चाहिए', फ़ंक्शन () {वापसी ड्राइवर। सेटवैल्यू ("// फॉर्म [@ आईडी = 'सर्च-फॉर्म']/इनपुट [1]", "टोनी").getValue("//form[@id='search-form']/input[1]").then(function (e) {(e). should.be.equal("टोनी"); कंसोल.लॉग ("पहला नाम:" + ई); }); }); // आईडी का उपयोग करके अंतिम नाम सेट करें: कीथ इट ('कीथ को अंतिम नाम सेट करना चाहिए', फ़ंक्शन () {वापसी ड्राइवर। सेटवैल्यू ("# lname", "कीथ")। getValue ("# lname")। फिर (फ़ंक्शन (ई) {(ई) चाहिए। होना चाहिए। बराबर ("कीथ"); कंसोल.लॉग ("अंतिम नाम:" + ई);});}); // फॉर्म जमा करें और खोज परिणामों की प्रतीक्षा करें ('फॉर्म जमा करना चाहिए और परिणामों की प्रतीक्षा करनी चाहिए', फ़ंक्शन () {वापसी ड्राइवर। सबमिटफॉर्म ("# खोज-फॉर्म")। फिर (फ़ंक्शन (ई) { कंसोल.लॉग (' सर्च फॉर्म सबमिट करें'); }).waitForVisible("#search-results", 10000).then(function (e) { कंसोल.लॉग ('Search Results Found'); }); });
-
दिखाएँ/छिपाएँ बटन पर क्लिक करें और टेक्स्ट सत्यापित करें - "showHideVerify1.js"
- पाठ एक शो/छिपाएँ तत्व में है। बटन राज्य को नियंत्रित करता है।
-
यह उदाहरण दिखाता है:
- विस्तार करने के लिए बटन पर क्लिक करें
- तत्व के दिखाई देने की प्रतीक्षा करें (विस्तारित)
- टेक्स्ट सत्यापित करें (डेक कॉपी करें)
// "अधिक जानकारी" बटन पर क्लिक करें और विस्तारित तत्व में टेक्स्ट सत्यापित करें
यह ('अधिक जानकारी बटन पर क्लिक करना चाहिए और पाठ को सत्यापित करना चाहिए', फ़ंक्शन () {वापसी ड्राइवर। क्लिक करें ("# अधिक जानकारी")। फिर (फ़ंक्शन () {कंसोल.लॉग ('अधिक जानकारी बटन पर क्लिक किया गया');}).waitForVisible ("#collapseExample", 5000).getText("//div[@id='collapseExample']/div")। तब (फ़ंक्शन (ई) { कंसोल.लॉग ('टेक्स्ट:' + ई); (ई). should.be.equal("सभी चीजें यहां अच्छी हैं!"); }); });
-
फॉर्म फ़ील्ड त्रुटियों को मान्य करें - "formFieldValidation.js"
- सही त्रुटि संदेशों का उत्पादन सत्यापित करने के लिए परीक्षण स्क्रिप्ट का उपयोग करें।
-
यह उदाहरण दिखाता है:
त्रुटि पाठ संदेश सत्यापित करें और स्थान सत्यापित करें (अक्रमित सूची स्थिति)।
it('5 त्रुटियाँ होनी चाहिए: प्रथम/अंतिम/पता/शहर/राज्य', फ़ंक्शन () {
रिटर्न ड्राइवर.getText("//ul[@class='alert Alert-danger']/li[1]").then(function (e) { कंसोल.लॉग ('त्रुटि मिली:' + e); (ई). चाहिए.be.equal('कृपया पहला नाम दर्ज करें'); }).getText("//ul[@class='alert alert-danger']/li[2]").then(function (e) { कंसोल.लॉग ('त्रुटि मिली:' + ई); (ई). should.be.equal('कृपया अंतिम नाम दर्ज करें'); }).getText("//ul[@class='alert अलर्ट-खतरे ']/li[3]"). तब (फ़ंक्शन (ई) { कंसोल.लॉग ('त्रुटि मिली:' + ई); (ई). चाहिए.be.equal('कृपया पता दर्ज करें'); }) । getText("//ul[@class='alert alert-danger']/li[4]").then(function (e) { कंसोल.लॉग ('त्रुटि मिली:' + e); (ई)। चाहिए.be.equal('कृपया शहर दर्ज करें'); }).getText("//ul[@class='alert Alert-danger']/li[5]").then(function (e) { कंसोल.लॉग ('त्रुटि मिली:' + ई); (ई). should.be.equal ('कृपया राज्य दर्ज करें');}); });
-
URL लिंक/टेक्स्ट/पेज को मान्य करने के लिए लूपिंग डेटा - "LoopDataExample1.js"
-
यह उदाहरण दिखाता है:लिंक और नाम को संग्रहीत करने के लिए JSON डेटा की एक सरणी का उपयोग करें, फिर पुनरावृति करें
- प्रत्येक URL टेक्स्ट और लिंक को सत्यापित करें
- लिंक पर क्लिक करें और पेज लोड करें
-
// लिंक डेटा - लिंक और टेक्स्ट
वर लिंकअरे = [{"लिंक": "https://github.com/onewithhammer/WebDriverIOTutorial/blob/master/tutorial1.js", "name": "tutorial1.js"}, {"link": "https://github.com/onewithhammer/WebDriverIOTutorial/blob/master/linkTextURL1.js", "name": "linkTextURL1.js"}, {"link": "https://github.com/onewithhammer/WebDriverIOTutorial/blob/ Master/copyright1.js", "name": "copyright1.js"}, {"link": "https://github.com/onewithhammer/WebDriverIOTutorial/blob/master/formFillSubmit1.js", "name": " formFillSubmit1.js"}, {"लिंक": "https://github.com/onewithhammer/WebDriverIOTutorial/blob/master/showHideVerify1.js", "name": "showHideVerify1.js"}, {"link": " https://github.com/onewithhammer/WebDriverIOTtutorial/blob/master/dynamicBrowser.js", "name": "dynamicBrowser.js"}, {"link": "https://github.com/onewithhammer/WebDriverIOTutorial/ blob/master/callbackPromise.js", "name": "callbackPromise.js"}, {"link": "https://github.com/onewithhammer/WebDriverIOTutorial/blob/master/debugExample1.js", "name": "देबु gExample1.js"}, {"लिंक": "https://github.com/onewithhammer/WebDriverIOTutorial/blob/master/formFieldValidation.js", "name": "formFieldValidation.js"}, {"link": " https://github.com/onewithhammer/WebDriverIOTtutorial/blob/master/common/commonLib.js", "name": "commonLib.js"}, {"link": "https://github.com/onewithhammer/ WebDriverIOTट्यूटोरियल/ब्लॉब/मास्टर/डेटाLoopExample1.js", "नाम": "dataLoopExample1.js"}]; …//प्रत्येक लिंक के माध्यम से लूपअरे लिंकअरे। प्रत्येक (फ़ंक्शन (डी) {यह ('पाठ/लिंक होना चाहिए फिर गोटो पेज -' + डी.नाम, फ़ंक्शन() {वापसी ड्राइवर//सुनिश्चित करें कि आप शुरुआती पृष्ठ पर हैं.url('https://www.tlkeith.com/WebDriverIOTutorialTest.html').getTitle().then(function (शीर्षक) {// शीर्षक सत्यापित करें (शीर्षक)। चाहिए.be.equal("वेब चालक आईओ - ट्यूटोरियल टेस्ट पेज"); }) // URL खोजें.getAttribute('a=' + d.name, "href").then(function (link) { (link). should.equal(d.link); console.log('URL मिला:' + d.link); }) // URL पृष्ठ पर जाएं और सत्यापित करें कि यह मौजूद है। क्लिक करें ('a=' + d.name).waitForVisible("#js-repo-pjax- कंटेनर", 10000)। तब (फ़ंक्शन () { कंसोल.लॉग ('जीथब पेज मिला');});});});
-
फ़ॉर्म फ़ील्ड को पॉप्युलेट करने के लिए लूपिंग स्टेटिक डेटा - "loopDataExample2.js"
-
यह उदाहरण दिखाता है:पहले/अंतिम नाम को स्टोर करने के लिए JSON डेटा की एक सरणी का उपयोग करें
- प्रपत्र फ़ील्ड को पॉप्युलेट करने के लिए डेटा के माध्यम से लूप करें, फिर फ़ॉर्म सबमिट करें
- परिणाम पृष्ठ की प्रतीक्षा करें
- परिणाम पृष्ठ पर प्रथम / अंतिम नाम सत्यापित करें
-
// डेटा सरणी - पहला नाम और अंतिम नामवर डेटाअरे = [{"पहला नाम": "टोनी", "अंतिम नाम": "कीथ"}, {"पहला नाम": "जॉन", "अंतिम नाम": "डो"}, {"पहला नाम ": "जेन", "अंतिम नाम": "डो"}, {"फर्स्टनाम": "डॉन", "अंतिम नाम": "जॉनसन"}]; … // प्रत्येक डेटा के माध्यम से लूपअरे डेटाअरे। प्रत्येक के लिए (फ़ंक्शन (डी) {यह ('फ़ील्ड को पॉप्युलेट करना चाहिए, पृष्ठ को जोड़ना चाहिए', फ़ंक्शन() {वापसी ड्राइवर // सुनिश्चित करें कि आप शुरुआती पृष्ठ पर हैं। url ('http: / /www.tlkeith.com/WebDriverIOTutorialTest.html').getTitle().then (फ़ंक्शन (शीर्षक) {// शीर्षक सत्यापित करें (शीर्षक)। should.be.equal("वेब ड्राइवर IO - ट्यूटोरियल टेस्ट पेज"); }).setValue("#fname", d.firstName).getValue("#fname").then(function (e) {(e). should.be.equal(d.firstName); console.log("First नाम: "+ ई); }).setValue("#lname", d.lastName).getValue("#lname").then(function (e) {(e). should.be.equal(d.lastName)); कंसोल.लॉग("अंतिम नाम:" + ई); }).submitForm("#search-form").then(function() { कंसोल.लॉग('सबमिट सर्च फॉर्म'); }) "# खोज-परिणाम", 10000)। तब (फ़ंक्शन () { कंसोल.लॉग ('परिणाम पृष्ठ मिला'); }).getText("//h1").then(function (लिंक) { कंसोल.लॉग('पाठ मिला:' + लिंक); (लिंक)। चाहिए। बराबर ("वेलकम" + d.firstName + "" + d.lastName + "।"); }); }); });
-
सीएसएस गुण मान्य करें - "cssValidation1.js"
-
यह उदाहरण दिखाता है कि कैसे करें:
-
निम्नलिखित सीएसएस गुणों को मान्य करें:
- रंग
- पैडिंग (ऊपर, नीचे, दाएं, बाएं)
- पीछे का रंग
-
-
it ('त्रुटि पाठ का सही रंग होना चाहिए', फ़ंक्शन () {रिटर्न ड्राइवर.getCssProperty("//ul[@class='alert Alert-danger']/li[1]", "color").then(फ़ंक्शन (परिणाम) { कंसोल.लॉग ('रंग मिला:' + result.parsed.hex + "या" + result.value); (result.parsed.hex). should.be.equal('#a94442'); }); });
it ('टेबल सेल में सही पैडिंग होनी चाहिए', फंक्शन () {
रिटर्न ड्राइवर // पैडिंग: टॉप राइट बॉटम लेफ्ट.getCssProperty("//table[@id='filelist']/thead/tr[1]/td[1]", "padding-top").then(function (परिणाम) { कंसोल.लॉग ('पैडिंग-टॉप मिला:' + result.value); (result.value). चाहिए.be.equal('10px'); }).getCssProperty("//table[@id= 'filelist']/thead/tr[1]/td[1]", "padding-bottom").then(function (result) { कंसोल.लॉग ('पैडिंग-बॉटम मिला:' + result.value); (result.value). चाहिए.be.equal('10px'); }).getCssProperty("//table[@id='filelist']/thead/tr[1]/td[1]", "padding- राइट")। तब (फ़ंक्शन (परिणाम) { कंसोल.लॉग ('पैडिंग-राइट मिला:' + परिणाम। मूल्य); (result.value). चाहिए.be.equal('5px'); }).getCssProperty("//टेबल [@ आईडी = 'फाइललिस्ट']/थेड/टीआर [1]/टीडी [1]", "पैडिंग-लेफ्ट")। फिर (फ़ंक्शन (परिणाम) { कंसोल.लॉग ('पैडिंग-लेफ्ट मिला: '+ result.value); (result.value). चाहिए.be.equal('5px'); }); });
it ('टेबल हेडर में सही बैकग्राउंड कलर होना चाहिए', फंक्शन () {
रिटर्न ड्राइवर.getCssProperty("//table[@id='filelist']/thead", "background-color").then(function (result) { कंसोल.लॉग ('बैकग्राउंड कलर मिला:' + result.parsed. hex); (result.parsed.hex). should.be.equal('#eeeeee'); }); });
चरण 6: टिप्स और ट्रिक्स
-
डिबगिंग:
-
अधिक डिबग के लिए और लॉग बनाने के लिए ड्राइवर स्तर पर लॉगिंग चालू करें।
- logLevel को 'verbose' पर सेट करें
- निर्देशिका नाम पर लॉगऑउटपुट सेट करें ('लॉग')
-
ड्राइवर = webdriverio.remote(loglevel: 'verbose', logOutput: 'logs', {वांछित क्षमताएं: {ब्राउज़रनाम: 'फ़ायरफ़ॉक्स'}});
-
डिबग करने के लिए कंसोल.लॉग (), डिबग (), गेटटेक्स्ट () का उपयोग करें।
- कंसोल.लॉग () - राज्य निर्धारित करने के लिए जानकारी प्रदर्शित करने के लिए उपयोग करें।
- डीबग () - कमांड लाइन पर एंटर दबाए जाने तक पॉज़ ब्राउज़र/स्क्रिप्ट का उपयोग करें।
-
getText() - यह सत्यापित करने के लिए उपयोग करें कि आप सही तत्व के साथ इंटरैक्ट कर रहे हैं।
xpath अभिव्यक्तियों के साथ विशेष रूप से सहायक।
// सूची से आइटम 3 पर क्लिक करें
it ('सूची से आइटम 3 पर क्लिक करना चाहिए', फ़ंक्शन () {// getText() का उपयोग यह सत्यापित करने के लिए करें कि xpath तत्व रिटर्न ड्राइवर के लिए सही है। getText ("//ul [@ id = 'mylist']/li [३]/div/div/a")। तब (फ़ंक्शन (लिंक) {// कंसोल.लॉग () का उपयोग आउटपुट जानकारी कंसोल के लिए करें। लॉग ('लिंक मिला:' + लिंक); (लिंक)। चाहिए। बराबर ("आइटम ३"); }) // ब्राउज़र पर क्या हो रहा है, यह देखने के लिए कार्रवाई को रोकने के लिए डिबग () का उपयोग करें। /div/div/a"). तब (फ़ंक्शन () { कंसोल.लॉग ('लिंक क्लिक किया गया'); }) // Google खोज फ़ॉर्म के प्रकट होने की प्रतीक्षा करें.waitForVisible("#tsf", 20000).then(function (ई) { कंसोल.लॉग ('खोज परिणाम मिले'); }); });
-
ब्राउज़र को गतिशील रूप से बदलने के लिए पर्यावरण चर का उपयोग करें:
- हर बार परीक्षण स्क्रिप्ट को संशोधित किए बिना किसी भिन्न ब्राउज़र को लागू करने के लिए पर्यावरण चर SELENIUM_BROWSER का उपयोग करें।
- समर्थन के लिए थोड़ा कोडिंग परिवर्तन की आवश्यकता है।
कोड परिवर्तन:
// ब्राउज़र के लिए ड्राइवर लोड करें
ड्राइवर = webdriverio.remote ({वांछित क्षमताएं: {ब्राउज़रनाम: प्रक्रिया.env. SELENIUM_BROWSER || 'क्रोम'}});
समर्थित ब्राउज़र:
-
इंटरनेट एक्सप्लोरर - आईई 8+ (केवल विंडोज़)
SELENIUM_BROWSER=यानी मोचा
-
फ़ायरफ़ॉक्स 10+ (विंडोज़/मैक्स/लिनक्स)
SELENIUM_BROWSER=फ़ायरफ़ॉक्स मोचा
-
क्रोम 12+ (विंडोज/मैक्स/लिनक्स)
SELENIUM_BROWSER=क्रोम मोचा
-
ओपेरा 12+
SELENIUM_BROWSER=ओपेरा मोचा
-
सफारी
SELENIUM_BROWSER=सफारी मोचा
परिक्षण:
-
विंडोज़ के लिए गिट बैश खोल का उपयोग करें:
- SELENIUM_BROWSER=क्रोम मोचा
- $ SELENIUM_BROWSER=क्रोम मोचा DynamicBrowser.js
-
Mac या Linux के लिए, टर्मिनल खोलें:
- SELENIUM_BROWSER=क्रोम मोचा
- $ SELENIUM_BROWSER=क्रोम मोचा DynamicBrowser.js
-
उत्तरदायी परीक्षण:
- प्रोजेक्ट या फ्रेमवर्क (यानी बूटस्ट्रैप) के आधार पर ब्रेकप्वाइंट निर्धारित करें।
-
प्रत्येक ब्रेकपॉइंट के लिए पर्यावरण चर परिभाषित करें:
- डेस्कटॉप - 1200 पिक्सल
- टैबलेट - 992 पीएक्स
- मोबाइल - 768 पिक्सल
-
पर्यावरण चर को पढ़ने और ब्राउज़र का आकार निर्धारित करने के लिए एक पुन: प्रयोज्य कमांड विकसित करें।
नीचे उदाहरण देखें।
- अपनी परीक्षण स्क्रिप्ट में पुन: प्रयोज्य कमांड को कॉल करें।
// पुन: प्रयोज्य कोड - पुस्तकालय // कोड स्निपेट अगर (बीपी == "डेस्कटॉप") { obj.width = 1200; obj.ऊंचाई = ६००; obj.name = बीपी; } और अगर (बीपी == "टैबलेट") {obj.width = 992; obj.ऊंचाई = ६००; obj.name = बीपी; } और अगर (बीपी == "मोबाइल") { obj.width = 768; obj.ऊंचाई = ४००; obj.name = बीपी; }
// टेस्ट स्क्रिप्ट
पहले (फ़ंक्शन (किया गया) {winsize = common.getWindowSizeParams (); … ड्राइवर। एडकॉमैंड ('सेटविंडोसाइज़', कॉमन.सेटविंडोसाइज़.बाइंड (ड्राइवर)); } // विंडो का आकार सेट करें ('विंडो का आकार सेट करना चाहिए', फ़ंक्शन (किया गया) {// केवल चौड़ाई मायने रखती है Driver.setWindowSize (winsize.width, winsize.height, function () {})। कॉल (किया); });
-
पुन: प्रयोज्य कमांड (कस्टम कमांड):
- वेब ड्राइवर IO आसानी से बढ़ाया जा सकता है।
- मैं सभी पुन: प्रयोज्य आदेशों को एक पुस्तकालय में रखना पसंद करता हूं। (शायद यह पुराना स्कूल है लेकिन यह काम करता है!)
कॉमन/कॉमनलिब.जेएस
// VerifyLastNameCheckError ()
// // विवरण: // अंतिम नाम फॉर्म सत्यापन त्रुटि संदेश की पुष्टि करता है // // इनपुट: // संख्या - त्रुटि की अनुक्रमणिका (1-5) // आउटपुट: // कोई नहीं // var VerifyLastNameCheckError = function () { var idx = तर्क [0], कॉलबैक = तर्क [तर्क। लंबाई - 1]; यह.getText("//ul[@class='alert अलर्ट-खतरे']/li[" + idx + "]", function(err, e) { कंसोल.लॉग ('त्रुटि मिली:' + e); (ई). चाहिए.be.equal('कृपया अंतिम नाम दर्ज करें'); }).call(callback); }; // फ़ंक्शन मॉड्यूल निर्यात करें। निर्यात.verifyLastNameCheckError = VerifyLastNameCheckError;
पुन: प्रयोज्य फ़ंक्शन को कॉल करने के लिए आवश्यक विशिष्ट परिवर्तन यहां दिए गए हैं
पूर्ण कार्य उदाहरण के लिए formFieldValidation.js देखें
// पुन: प्रयोज्य कमांड की आवश्यकता है - CommonLib
आम = आवश्यकता ('./ आम/कॉमनलिब'); …//आदेशों को बाँधें Driver.addCommand('verifyFirstNameError', common.verifyFirstNameCheckError.bind(driver)); Driver.addCommand('verifyLastNameError', common.verifyLastNameCheckError.bind(driver)); it('इसमें 2 त्रुटियां होनी चाहिए: प्रथम/अंतिम नाम', फ़ंक्शन () {// पुन: प्रयोज्य फ़ंक्शन ड्राइवर को कॉल करें। VerifyFirstNameError(1);.verifyLastNameError(2);});
-
परियोजना फ़ाइल/निर्देशिका संरचना:
-
यहाँ विशिष्ट परियोजना संरचना है:
-
"परियोजना" - मुख्य परियोजना निर्देशिका
- README.md - वैश्विक परियोजना के लिए रीडमी
-
"सामान्य" - सभी परियोजनाओं के लिए सामान्य वैश्विक कार्यों के लिए निर्देशिका
- common-lib.js - ग्लोबल फंक्शन लाइब्रेरी
- README.md - वैश्विक कार्यों के लिए रीडमी
-
"उत्पाद 1" - उत्पाद 1 के लिए निर्देशिका
- टेस्ट-स्क्रिप्ट1.जेएस
- टेस्ट-स्क्रिप्ट2.जेएस
-
"कॉमन" - प्रोजेक्ट 1 के लिए स्थानीय कार्यों के लिए निर्देशिका
- prod1-lib.js - प्रोजेक्ट 1 के लिए स्थानीय फ़ंक्शन लाइब्रेरी
- README.md - प्रोजेक्ट 1 के लिए स्थानीय कार्यों के लिए रीडमी
-
"Product2" - उत्पाद के लिए निर्देशिका 2test-script1.jstest-script2.js
-
"कॉमन" - प्रोजेक्ट 2 के लिए स्थानीय कार्यों के लिए निर्देशिका
- prod2-lib.js - प्रोजेक्ट 2 के लिए स्थानीय फ़ंक्शन लाइब्रेरी
- README.md - प्रोजेक्ट 2 के लिए स्थानीय कार्यों के लिए रीडमी
-
-
-
-
परीक्षण स्क्रिप्ट को कई फाइलों में तोड़ें:
-
यहाँ एकाधिक फ़ाइलों का उपयोग करने का एक नमूना है:
- सैनिटी चेक - सब कुछ काम कर रहा है यह सत्यापित करने के लिए मूल परीक्षण स्क्रिप्ट
- स्थिर तत्व और पाठ सत्यापन - सभी तत्वों और पाठ को सत्यापित करें
- प्रपत्र/पृष्ठ त्रुटि सत्यापन - त्रुटि सत्यापन
- खोज परिणाम - गतिशील सामग्री का परीक्षण करें
-
-
कॉलबैक वी.एस. वादे:
-
वेब ड्राइवर IO का संस्करण 3 कॉलबैक और वादे दोनों का समर्थन करता है।
प्रॉमिस पसंदीदा तरीका है क्योंकि यह एरर हैंडलिंग कोड को कम करता है। कृपया कॉलबैक और वादों का उपयोग करके लिखे गए उसी उदाहरण को नीचे देखें।
-
कॉलबैक
// कॉलबैक का उपयोग करके पहले / अंतिम नाम को सेट / सत्यापित करें
it ('कॉलबैक का उपयोग करके पहले/अंतिम नाम को सेट/सत्यापित करना चाहिए', फ़ंक्शन (किया गया) {driver.setValue ("#fname", "टोनी", फ़ंक्शन (ई) {driver.getValue ("#fname", फ़ंक्शन (त्रुटि, ई) {(ई) चाहिए। होना चाहिए। बराबर ("टोनी"); कंसोल.लॉग ("पहला नाम:" + ई); ड्राइवर.सेटवैल्यू ("# नाम", "कीथ", फ़ंक्शन (ई) { Driver.getValue("#lname", function (err, e) {(e). should.be.equal("Keith"); console.log ("अंतिम नाम:" + ई); किया (); }); }); }); }); });
वादे
// वादों का उपयोग करके पहले / अंतिम नाम को सेट / सत्यापित करें
it ('वादों का उपयोग करके पहले/अंतिम नाम को सेट/सत्यापित करना चाहिए', फ़ंक्शन () {वापसी ड्राइवर.सेटवैल्यू ("#fname", "टोनी").getValue ("#fname")। तब (फ़ंक्शन (ई) {(e). should.be.equal("tony"); console.log("First Name:" + e); }).setValue("#lname", "Keith").getValue("#lname"). तब (फ़ंक्शन (ई) {(ई) चाहिए। होना चाहिए। बराबर ("कीथ"); कंसोल.लॉग ("अंतिम नाम:" + ई);});});
चरण 7: अधिक संसाधन
आपके संदर्भ के लिए यहां कुछ अतिरिक्त संसाधन दिए गए हैं:
-
चर्चा समूह (गटर)
- वेब चालक आईओ चर्चा समूह
- मोचा चर्चा समूह
-
अन्य दिलचस्प परियोजनाएं
- सुपरटेस्ट - HTTP अभिकथन
- चाई - अभिकथन
चरण 8: निष्कर्ष
मैंने अपनी परियोजना के लिए उपयोग की जाने वाली तकनीकों पर शोध करने में कुछ समय बिताया। मैंने मूल रूप से सेलेनियम वेब ड्राइवर के साथ शुरुआत की लेकिन वेब ड्राइवर आईओ का उपयोग करने के लिए स्विच किया। वेब ड्राइवर IO का उपयोग करना आसान लग रहा था और विस्तार करना बहुत आसान था (कम से कम विस्तार के लिए प्रलेखन - पुन: प्रयोज्य आदेश बेहतर थे)।
जब मैंने पहली बार प्रौद्योगिकियों को देखना शुरू किया तो ऐसे अच्छे उदाहरण मिलना मुश्किल था जो मेरे द्वारा किए जाने वाले किसी भी काम से संबंधित थे। यही कारण है कि मैं यह जानकारी और ज्ञान आपके साथ साझा करना चाहता था।
प्रौद्योगिकियों ने मेरी अपेक्षा से बहुत बेहतर काम किया, हालांकि इसमें सीखने की अवस्था शामिल थी। एक बार जब मैं समझ गया कि सभी घटक एक साथ कैसे काम करते हैं, तो मैं बहुत ही कम समय में जटिल परीक्षण स्क्रिप्ट लिखने में सक्षम था। सबसे कठिन स्क्रिप्ट जावास्क्रिप्ट आधारित घटक थे जैसे दिनांक पिकर और मोडल चयनकर्ता।
मैंने खुद को कभी भी जावास्क्रिप्ट डेवलपर के रूप में लेबल नहीं किया है और न ही मैं हर जावास्क्रिप्ट विशेषज्ञ बनना चाहता हूं, लेकिन इन तकनीकों का उपयोग करने से मुझे अपने जेएस कौशल को तेज करने के लिए निश्चित रूप से प्रेरित किया है।
मुझे उम्मीद है कि यह लेख उपयोगी है और उदाहरण स्पष्ट और सूचनात्मक हैं।
कृपया मुझे बताएं कि क्या आपके कोई प्रश्न या टिप्पणी हैं।
शुक्रिया, टोनी कीथ
सिफारिश की:
परिवार के आधार पर अपने परिवार के पेड़ के भीतर अधूरे मंदिर अध्यादेश कार्य को खोजने के लिए होप के सीने के विस्तार का उपयोग करना खोज: 11 कदम
परिवार खोज पर अपने परिवार के पेड़ के भीतर अधूरे मंदिर अध्यादेश कार्य को खोजने के लिए होप्स चेस्ट एक्सटेंशन का उपयोग करना: इस निर्देश का उद्देश्य यह प्रदर्शित करना है कि परिवार में अपने परिवार के पेड़ की खोज कैसे करें अपूर्ण मंदिर अध्यादेश कार्य वाले पूर्वजों को होप के चेस्ट एक्सटेंशन का उपयोग करके खोजें। होप्स चेस्ट का उपयोग करने से आपकी खोज में बहुत तेजी आ सकती है
ESP8266 NODEMCU BLYNK IOT ट्यूटोरियल - Esp8266 IOT ब्लंक और Arduino IDE का उपयोग करना - इंटरनेट पर एलईडी को नियंत्रित करना: 6 कदम
ESP8266 NODEMCU BLYNK IOT ट्यूटोरियल | Esp8266 IOT ब्लंक और Arduino IDE का उपयोग करना | इंटरनेट पर एलईडी को नियंत्रित करना: हाय दोस्तों इस निर्देश में हम सीखेंगे कि अपने ESP8266 या Nodemcu के साथ IOT का उपयोग कैसे करें। हम उसके लिए blynk ऐप का उपयोग करेंगे। इसलिए हम इंटरनेट पर LED को नियंत्रित करने के लिए अपने esp8266/nodemcu का उपयोग करेंगे। इसलिए Blynk ऐप हमारे esp8266 या Nodemcu से जुड़ा होगा
ईगल हैक्स / ट्रिक्स: उदाहरण TB6600 सीएनसी मिल स्टेपर मोटर ड्राइवर: 7 कदम
ईगल हैक्स/ट्रिक्स: उदाहरण टीबी६६०० सीएनसी मिल स्टेपर मोटर ड्राइवर: यह कुछ ट्रिक्स दिखाने के लिए एक अच्छा प्रोजेक्ट बनाता है जो पीसीबी बनाते समय आपके जीवन को आसान बना देगा। आपको कुछ हैक्स सिखाने के लिए ताकि आप अधिक लाभ उठा सकें ईगल, मैं एक साधारण प्रोजेक्ट चुनता हूं जो मैंने अपने किकस्टार्टर के लिए किया था। मुझे एक बाहरी की जरूरत थी
किसी भी फोन में वायरलेस चार्जिंग जोड़ें: उदाहरण के तौर पर LG-V20 का उपयोग करना: 10 कदम (चित्रों के साथ)
किसी भी फ़ोन में वायरलेस चार्जिंग जोड़ें: उदाहरण के तौर पर LG-V20 का उपयोग करना: यदि आप मेरे जैसे हैं और अपने फ़ोन को 2 वर्ष से अधिक समय तक रखने की योजना बना रहे हैं, तो आपके फ़ोन में एक बदली जाने योग्य बैटरी होनी चाहिए, क्योंकि बैटरी केवल 2 वर्ष तक चलती है, और और वायरलेस चार्जिंग ताकि आप चार्जिंग पोर्ट को खराब न करें। अब आसान एस
कार्य समाप्त करना: OLPC XO लैपटॉप में USB कीबोर्ड स्थापित करना, चरण II: 6 चरण
कार्य समाप्त करना: OLPC XO लैपटॉप में USB कीबोर्ड स्थापित करना, चरण II: एक ऐसे व्यक्ति के लिए जिसने अपना अधिकांश जीवन होम रो से जुड़ी अपनी उंगलियों के साथ बिताया है, इस USB कीबोर्ड को जोड़कर जिसे मैं वास्तव में टच-टाइप कर सकता हूं, एक बना दिया है XO की उपयोगिता में भारी अंतर। यह "चरण II" -- केबल इंसी लगाना