how handle windows pop up selenium using autoit
यह ट्यूटोरियल सेलेनियम में विंडोज पॉप अप को संभालने के लिए विभिन्न तरीकों का वर्णन करता है।
AutoIT एक तृतीय-पक्ष उपकरण है जो सेलेनियम को Windows प्रमाणीकरण पॉप अप, फ्लैश एप्लिकेशन, डेस्कटॉप एप्लिकेशन और इतने पर जैसे पॉप-अप को संभालने में मदद करता है।
सेलेनियम केवल वेब अनुप्रयोगों को स्वचालित करने के लिए सीमित है। कुछ मामलों में, एक विंडोज़ पॉप अप उस एप्लिकेशन में दिखाई दे सकता है जिसे सेलेनियम हैंडल नहीं कर सकता है। ऐसे परिदृश्यों को संभालने के लिए, AutoIT एक मदद करता है जिसमें यह विंडोज पॉप अप और डेस्कटॉप अनुप्रयोगों को स्वचालित करने का ध्यान रखता है।
=> सभी के लिए सेलेनियम प्रशिक्षण श्रृंखला देखने के लिए यहां जाएं।
आप क्या सीखेंगे:
ऑटो टूल का अवलोकन
यहाँ एक वीडियो ट्यूटोरियल है:
AutoIT का उपयोग करके विंडोज पॉप अप को हैंडल करें
ऑटिट एक तृतीय-पक्ष उपकरण है जिसका उपयोग विंडोज-आधारित अनुप्रयोगों को संभालने के लिए किया जाता है। प्रयुक्त स्क्रिप्टिंग भाषा को VBScript कहा जाता है।AutoIt भी एक फ्रीवेयर है। यह के संयोजन का उपयोग करता हैसेलेनियम वेब ड्राइवर द्वारा किए जाने वाले कार्यों को स्वचालित करने के लिए माउस आंदोलन और कीबोर्ड स्ट्रोक।
AutoIt का उपयोग .exe प्रारूप में किया जाता है ताकि इसे सेलेनियम स्वचालन स्क्रिप्ट में उपयोग किया जा सके।
आइए एक नजर डालते हैं उदाहरण, जिसमें हमें आवश्यकता होगी एक फाइल अपलोड करें आवेदन के लिए।
परिदृश्य लिंक्डइन पर एक प्रोफ़ाइल चित्र अपलोड करना है। इस परिदृश्य के लिए परीक्षण चरण हैं:
- यू आर एल दर्ज करो
- एक मान्य उपयोगकर्ता नाम, पासवर्ड दर्ज करें और लॉग इन करें।
- प्रोफाइल अपलोड आइकन पर क्लिक करें।
- Windows पॉप अप दिखाई देता है जिसमें चित्र अपलोड करने का पथ दर्ज किया गया है।
चरण 3 तक, सेलेनियम स्वचालन इसे संभाल सकता है। जब विंडोज पॉप अप दिखाई देता है, तो उस हिस्से को स्वचालित करने के लिए ऑटिट स्क्रिप्ट का उपयोग किया जाता है।
अब, हम देखते हैं कि विंडोज पॉप अप में कार्यों को कैसे स्वचालित किया जाए?
इसे 4 अलग-अलग तरीकों से संभाला जा सकता है।
- किसी विशेष फ़ाइल को अपलोड करने के लिए विंडोज कमांड का उपयोग करना।
- फ़ाइल को अपलोड करने के लिए कंट्रोल कमांड्स का उपयोग करना।
- फ़ाइलनाम को अपलोड करने के लिए निर्दिष्ट करने के लिए कमांड-लाइन तर्क का उपयोग करना।
- AutoIT रिकॉर्ड टूल का उपयोग करना।
सभी स्क्रिप्ट का उपयोग करके बनाई गई हैं AutoItScriptEditor, जो AutoIt फ़ोल्डर पैकेज में उपलब्ध है।
पर जाए AutoIt3> SciTE> SciTE.exe और ScriptEditor एप्लिकेशन खोलें।
(1) विंडोज कमांड का उपयोग करना
हम AutoIt में कार्यों के विभिन्न सेट हैं।
आपकी नजर पड़ सकती है यहां। अब विंडोज पॉप अप क्रियाओं को स्वचालित करने के लिए, पहले क्रियाओं का विश्लेषण करें। इसमे शामिल है:
- फोकस को वर्तमान विंडो पर सेट करें।
- फ़ाइलनाम बॉक्स में अपलोड करने के लिए फ़ाइल नाम का पथ दर्ज करें।
- ओपन बटन पर क्लिक करें या कीबोर्ड में एंटर दबाएं।
उपरोक्त बिंदुओं को विस्तार से समझते हैं:
- फोकस को वर्तमान विंडो पर सेट करें
WinWaitActive : निर्दिष्ट कर्सर का ध्यान विंडो नाम पर सेट करता है। इस स्थिति में, विंडो का शीर्षक 'ओपन' है। तो हम कमांड के रूप में निर्दिष्ट करते हैंWinWaitActive ('ओपन')।
कृपया ध्यान दें कि प्रत्येक ब्राउज़र के लिए एक ही विंडोज शीर्षक अलग है।
कहो, फ़ायरफ़ॉक्स के लिए , यह 'फ़ाइल अपलोड' है, - तो ऑटोट कमांड होगाWinWaitActive ('फ़ाइल अपलोड')।
IE के लिए, यह ’फाइल टू अपलोड’ है - तो ऑटोट कमांड होगाWinWaitActive ('अपलोड करने के लिए फ़ाइल')
क्रोम के लिए , यह 'ओपन' है - तो ऑटोट कमांड होगाWinWaitActive ('ओपन')
आपको उस ब्राउज़र के आधार पर विंडो शीर्षक निर्दिष्ट करना चाहिए जिसे आप स्वचालन के लिए उपयोग करते हैं।
२। फ़ाइलनाम बॉक्स में अपलोड करने के लिए फ़ाइल नाम का पथ दर्ज करें
संदेश - कीबोर्ड स्ट्रोक या दूसरे शब्दों में भेजता है, यह कीबोर्ड क्रियाओं को अनुकरण करता है।
प्रविष्टियां कुंजी, शिफ़्ट कुंजी, इत्यादि को दबा सकती हैं। या एक स्ट्रिंग, संख्या, आदि टाइप करना .. इस उदाहरण में, मुझे फ़ाइलनाम में टाइप करने की आवश्यकता है, इसलिए मैं विंडो में फ़ाइल नाम दर्ज करने के लिए कमांड का उपयोग करता हूं। -भेजें ('D: passport.jpg')
३। ओपन बटन पर क्लिक करें या कीबोर्ड में एंटर दबाएं
भेजें ({ENTER})- एंटर कीस्ट्रोके को विंडो में भेजता है, जो बदले में अपलोड की कार्रवाई को पूरा करता है।
मैं एक json फ़ाइल कैसे खोलूँ?
किसी भी स्थान में बनाई गई स्क्रिप्ट को सहेजें। यह .au3 प्रारूप में सहेजा जाएगा। एक बार सहेजे जाने के बाद .au3 फ़ाइल पर राइट-क्लिक करें और उसे संकलित करें।
संकलन के बाद, यह .exe प्रारूप (निष्पादन योग्य प्रारूप) में परिवर्तित हो जाता है। यह फाइल हम सेलेनियम स्क्रिप्ट में उपयोग करते हैं।
एक बार .exe फ़ाइल बन जाने के बाद, आप कमांड को चलाने के लिए सेलेनियम ऑटोमेशन स्क्रिप्ट में फ़ाइल का उपयोग कर सकते हैं
Runtime.getRuntime.exec ('यहां ऑटो एग्ज़ फ़ाइल नाम निर्दिष्ट करें')
# 2) कंट्रोल कमांड का उपयोग करना
हमारे पास कार्रवाई करने के लिए AutoIT में कुछ नियंत्रण कमांड हैं। यहां ऑटोलिट में कंट्रोल कमांड की सूची दी गई है।
हमें देखते हैं कि ऑटोट के इन कंट्रोल कमांड का उपयोग करके उसी फ़ाइल अपलोड परिदृश्य को कैसे स्वचालित किया जाए।
अब, क्रम में Windows पॉप अप को स्वचालित करने के लिए, नीचे दी गई क्रियाएं की जानी चाहिए:
- फोकस को वर्तमान विंडो पर सेट करें।
- फ़ाइलनाम बॉक्स में अपलोड करने के लिए फ़ाइल नाम का पथ दर्ज करें।
- ओपन बटन पर क्लिक करें या कीबोर्ड में एंटर दबाएं।
आइए उपरोक्त बिंदुओं को विवरण में समझें:
- फोकस को वर्तमान विंडो पर सेट करें
नियंत्रण फ़ोकस:निर्दिष्ट तत्व पर ध्यान केंद्रित करता है। इस मामले में, हमने टेक्स्ट बॉक्स को संपादित करने पर ध्यान केंद्रित किया।
जब आप इसके विवरण को देखते हैं, तो आप देख सकते हैं कि इसके लिए एक या अधिक मापदंडों की आवश्यकता है। हम AutoIt के विंडोज इन्फो टूल का उपयोग करके इन मापदंडों को पारित कर सकते हैं।
चलो नीचे के रूप में खुला ऑटिट एप्लिकेशन:
Windows जानकारी उपकरण नीचे के रूप में खोला जाता है:
इस टूल का उपयोग विंडोज एप्लिकेशन / पॉप अप में तत्वों का निरीक्षण करने के लिए किया जाता है।
विंडोज पॉप अप में प्रत्येक तत्व की विभिन्न विशेषताओं को प्राप्त करने के लिए, विंडोज इन्फो टूल के 'फाइंडर' आइकन को खींचें और नीचे दिए गए गुणों को प्रदर्शित करने के लिए तत्व पर क्लिक करें।
हमारे पास इसके गुण हैं जो उपकरण में दिखाए गए हैं।
FileName बॉक्स के लिए, गुण और इसके संबंधित मूल्य हैं:
- शीर्षक - खुला
- ClassName - संपादित करें
- उदाहरण - १
इन गुणों का उपयोग करके, हम नियंत्रण कमांड के लिए मापदंडों को पारित कर सकते हैं।
अब FileName बॉक्स पर फ़ोकस सेट करने के लिए, हम नीचे दिए गए कमांड ocus ControlFocus ’को कहते हैं:
- वाक्य - विन्यास : ControlFocus ('शीर्षक', 'पाठ', controlID)
- 'शीर्षक' टूल में प्रदर्शित शीर्षक से मेल खाता है।
- कंट्रोल आईडी टूल में क्लासनेम + इंस्टेंस का संयोजन है
ControlFocus ('ओपन', '', 'Edit1')
कहा पे,
- खुला - शीर्षक है
- Edit1 - controlID (controlID = ClassName + Instance) है
२। फ़ाइलनाम बॉक्स में अपलोड करने के लिए फ़ाइल नाम का पथ दर्ज करें
ControlSetText - तत्व के पाठ में प्रकार।
- वाक्य - विन्यास : ControlSetText ('शीर्षक', 'पाठ', controlID, 'नया पाठ' (, झंडा = 0))
हमारे मामले में, हमारे पास टेक्स्ट बॉक्स में फ़ाइल नाम है।
ControlSetText ('ओपन', '', 'Edit1', 'D: passport.jpg')
कहा पे,
- खुला - शीर्षक है
- Edit1 - controlID (controlID = ClassName + Instance) है
- D: passport.jpg - अपलोड करने के लिए फ़ाइल नाम है
३। ओपन बटन पर क्लिक करें या कीबोर्ड में एंटर दबाएं
नियंत्रण क्लिक करें - तत्व पर एक क्लिक क्रिया करता है। इस उदाहरण में, हम 'ओपन' बटन पर क्लिक करते हैं
- वाक्य - विन्यास : ControlClick ('शीर्षक', 'पाठ', controlID (, बटन = 'बाएं' (, क्लिकें = 1 (, x (, y)))))
हमारे मामले में, इसे विंडोज पॉप अप पर ’ओपन’ बटन पर क्लिक करना चाहिए।
कंट्रोलक्लिक ('ओपन', '', 'बटन 1')
कहा पे,
- खुला - शीर्षक है
- Button1 - controlID (controlID = ClassName + Instance) है
हम आदेश का उपयोग करते हुए सेलेनियम कोड से .exe फ़ाइल कहते हैं-Runtime.getRuntime.exec ('यहां ऑटो एग्ज़ फ़ाइल नाम निर्दिष्ट करें')
ध्यान दें: जब हमें कई फ़ाइलों को एक ही उदाहरण पर अपलोड करना होता है, तो हम सभी फ़ाइलनाम को एक चर में निर्दिष्ट कर सकते हैं और कमांड में चर नाम को पास कर सकते हैं।
ControlFocus - तत्व पर ध्यान केंद्रित करता है।
$ फाइलें - वैरिएबल बनाया गया है और यह अपलोड होने के लिए पाठ / फ़ाइल नाम रखता है।
ControlSetText - उस चर को पार करता है जिसमें फ़ाइल नाम तत्व 'एडिट' में अपलोड किया जाना है।
ContolClick - तत्व पर एक क्लिक क्रिया करता है।
# 3) अपलोड करने के लिए फ़ाइल नाम निर्दिष्ट करने के लिए कमांड-लाइन का उपयोग करना
उसी प्रक्रिया को एक अलग तरीके से संपर्क किया जा सकता है जिसमें उपयोगकर्ता से फाइलनेम प्राप्त किया जाता है। यह कमांड-लाइन दृष्टिकोण का उपयोग करके किया जाता है।
AutoIT में फ़ाइल नाम को सीधे निर्दिष्ट करने के बजाय, हम इसे नीचे दिए गए सेलेनियम कोड में पास करते हैं:
स्वतः स्क्रिप्ट: (Upload.exe)
ControlFocus(“Open”,””,”Edit1”) ControlSetText(“Open”,””,”Edit1”,$cmdLine(1)) ControlClick(“Open”,””,”Button1”)
सेलेनियम कोड में:
हम इसे निर्दिष्ट करते हैं:
Runtime.getRuntime.exec(“Path of .exe file”+””+ “FileToUpload”)
इस मामले में, यह होगा
Runtime.getRuntime.exec(“D:automationUpload.exe”+””+ “D:automationimage.jpg”)
बनाई गई फ़ाइल को सहेजें और इसे निष्पादन योग्य प्रारूप में बदलने के लिए संकलित करें।
# 4) ऑटोट के रिकॉर्ड फीचर का उपयोग करना
यह सुविधा केवल 3.3.14.0 से नीचे के संस्करणों में उपलब्ध है। इससे अधिक संस्करण इस सुविधा का समर्थन नहीं करते हैं।
रिकॉर्ड टूल खोलने के लिए, AutoIt3> Extras> Au3Record> Au3Record.exe पर नेविगेट करें
जब हम इसका उपयोग करना शुरू करते हैं, तो प्रत्येक स्क्रीन रिज़ॉल्यूशन के लिए माउस इंटरैक्शन भिन्न होने के बाद से हमेशा ’रिकॉर्ड माउस’ विकल्प को रद्द करना सुनिश्चित करें। हमेशा कीबोर्ड स्ट्रोक रिकॉर्ड करें।
टूल में actions क्लिक टू रिकॉर्ड ’का चयन करें और इसमें दर्ज की जाने वाली क्रियाएं।
जब आप रिकॉर्डिंग कर रहे हों, तो to क्लिक टू स्टॉप ’चुनें और फ़ाइल को सहेजें
आप अपने द्वारा किए गए प्रत्येक कार्य के लिए बनाई गई कमांड्स को देखने के लिए सहेजी गई .au3 फ़ाइल को खोल सकते हैं
स्क्रिप्ट संकलित करें और इसे .exe फ़ाइल में कनवर्ट करें।
.Exe फ़ाइल बनाई गई को सीधे सेलेनियम कोड में निष्पादन के लिए उपयोग किया जा सकता है:
Runtime.getRuntime.exec(“D:automationRecord.exe”)
निष्कर्ष
इस प्रकार, किसी भी विंडोज़ पॉप अप जैसे प्रमाणीकरण या फ़ाइल अपलोड या खुली फ़ाइल आदि को सेलेनियम में अपनी स्क्रिप्ट फ़ाइल को शामिल करके ऑटोआईटी का उपयोग किया जा सकता है।
अगले अध्याय में, हम सिकुली नामक एक अन्य तृतीय-पक्ष उपकरण के बारे में जानेंगे जिसका उपयोग छवि मान्यता तकनीक का उपयोग करके अनुप्रयोगों को स्वचालित करने के लिए किया जाता है।
=> स्क्रैच से सेलेनियम जानने के लिए यहां जाएं।
अनुशंसित पाठ
- सेलेनियम वेबड्राइवर में अलर्ट / पॉपअप कैसे हैंडल करें - सेलेनियम ट्यूटोरियल # 16
- ककड़ी सेलेनियम ट्यूटोरियल: ककड़ी जावा सेलेनियम वेबड्राइवर एकीकरण
- शीर्ष 10 सेलेनियम अपवाद और इनसे कैसे निपटें (सटीक कोड)
- सेलेनियम वेबड्राइवर का परिचय - सेलेनियम ट्यूटोरियल # 8
- AutoIt Tutorial - AutoIt Download, Install & Basic AutoIt Script
- क्रोमड्राइव सेलेनियम ट्यूटोरियल: क्रोम पर सेलेनियम वेबड्राइवर टेस्ट
- 30+ सर्वश्रेष्ठ सेलेनियम ट्यूटोरियल: वास्तविक उदाहरणों के साथ सेलेनियम जानें
- सेलेनियम विशेषज्ञों के लिए पार्ट-टाइम फ्रीलांसिंग जॉब के अवसर