Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Ruby

Watir के साथ रूबी में ब्राउज़र्स को स्वचालित करें: एक व्यापक गाइड

क्या आप जानते हैं कि आप रूबी के साथ अपने वेब ब्राउज़र को नियंत्रित कर सकते हैं?

Watir जेम आपको ऐसा करने की अनुमति देता है।

और यह आधुनिक ब्राउज़र्स की पूरी शक्ति के साथ आता है:

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

यह सब Watir और Selenium प्रोजेक्ट के लिए धन्यवाद उपलब्ध है।

आइए कुछ कोड उदाहरण देखें!

ब्राउज़र लॉन्च करना

सबसे पहले, इस तरह एक ब्राउज़र ऑब्जेक्ट बनाएं:

 require 'watir' browser = Watir::Browser.new 

यह एक खाली क्रोम विंडो खोलेगा (यह मानते हुए कि आपके पास यह इंस्टॉल है) जिसे आप अब नियंत्रित कर सकते हैं।

उदाहरण के लिए:

 browser.goto("rubyguides.com") 

क्रोम इस URL पर नेविगेट करेगा, और पेज लोड होगा जैसे आपने खुद URL टाइप किया हो।

अब:

आप वेबसाइट पर वह सब कुछ कर सकते हैं जो आप सामान्य रूप से अपने माउस और कीबोर्ड से करते हैं।

जैसे लिंक ढूंढना और उस पर क्लिक करना।

उदाहरण:

 browser.link(text: "All Posts").click 

Watir के साथ एलिमेंट्स कैसे ढूंढें

आप उनके एट्रिब्यूट्स द्वारा एलिमेंट्स ढूंढ सकते हैं, जैसे:

  • टेक्स्ट
  • क्लास
  • आईडी

इन एलिमेंट्स के मेथड्स होते हैं जो उनके HTML नाम से मेल खाते हैं, इसलिए यदि आप H1 टैग ढूंढ रहे हैं तो मेथड h1 है, पैराग्राफ के लिए मेथड p है और इमेजेस के लिए मेथड या तो img या images है।

उदाहरण:

 browser.h1(text: "Ruby Post Index") 

आप मेथड नाम के बहुवचन का उपयोग करके एलिमेंट्स की सूची भी प्राप्त कर सकते हैं।

उदाहरण:

 browser.links browser.images browser.h2s 

यह आपको एक Watir::AnchorCollection ऑब्जेक्ट देगा, जो each, map और inject जैसे मेथड्स का जवाब देता है।

उदाहरण:

 browser.links.map(&:href) 

टाइमआउट्स और अनुपस्थित एलिमेंट्स से कैसे निपटें

ऐसा हो सकता है कि कोई एलिमेंट मौजूद न हो, शायद इसलिए कि एलिमेंट अभी तक पेज में लोड नहीं हुआ है, या पेज बदल गया है।

जब Watir एलिमेंट नहीं ढूंढ पाता तो क्या होता है?

एक टाइमआउट होता है।

यह डिफ़ॉल्ट रूप से 30 सेकंड का होता है, लेकिन आप इसे बदल सकते हैं:

 Watir.default_timeout = 10 

जब यह समाप्त होता है तो आपको Watir::Exception::UnknownObjectException एक्सेप्शन मिलता है।

लेकिन इससे निपटने का एक और तरीका है!

आप क्लिक करने या कोई अन्य एक्शन करने से पहले जांच सकते हैं कि एलिमेंट मौजूद है या नहीं।

यहां कैसे:

 link = browser.link(text: 'Guides') if link.present? link.click end 

स्क्रीनशॉट कैसे लें

एक बार आपके पास एक खुला ब्राउज़र और लोडेड पेज हो तो आप उसका स्क्रीनशॉट ले सकते हैं।

इस तरह:

 browser.screenshot.save("/tmp/screen.png") 

यह वर्तमान व्यूपोर्ट की एक इमेज सेव करता है।

स्क्रिप्ट्स चलाना

आप ब्राउज़र में जावास्क्रिप्ट चला सकते हैं ताकि पेज की वर्तमान स्थिति को प्रभावित किया जा सके, या आप उस पेज पर परिभाषित जावास्क्रिप्ट फंक्शन्स को कॉल कर सकते हैं।

यहां कैसे:

 browser.execute_script "alert('bacon')" # nil 

परिणाम?

"bacon" शब्द के साथ एक अलर्ट विंडो 🙂

कोड चलाएं और परिणाम वापस प्राप्त करें:

 browser.execute_script "return 1 + 1" # 2 

इनपुट फ़ील्ड्स कैसे भरें

इनपुट फ़ील्ड भरने में दो चरण शामिल हैं:

  1. एलिमेंट ढूंढें
  2. कीज़ भेजें

यहां एक उदाहरण है:

 browser.input(id: "search").send_keys("orange juice") 

अब आपको सबमिट बटन ढूंढना होगा और उस पर क्लिक करना होगा।

उपयोगी Watir मेथड्स और टिप्स

Watir आपको कुछ उपयोगी मेथड्स तक पहुंच देता है।

उदाहरण के लिए, वर्तमान URL प्राप्त करें:

 browser.url 

खुले टैब्स की सूची प्राप्त करें:

 browser.windows 

वर्तमान विंडो को मैक्सिमाइज़ करें:

 browser.window.maximize 

वर्तमान पेज के लिए HTML और टेक्स्ट प्राप्त करें:

 browser.text browser.html 

यहां एक टिप भी है यदि आप आंशिक मिलान वाले एलिमेंट्स ढूंढना चाहते हैं, तो आप एक रेगुलर एक्सप्रेशन का उपयोग कर सकते हैं।

इस तरह:

 browser.p(text: /ruby/) 

सारांश

आपने इस ट्यूटोरियल में Watir के बारे में सीखा, एक रूबी जेम जो आपको वेब ब्राउज़र को रिमोट कंट्रोल करने की अनुमति देता है ताकि आप कार्यों को स्वचालित कर सकें और पेजों से जानकारी निकाल सकें।

कृपया इस लेख को साझा करें यदि आपने इसे उपयोगी पाया ताकि अधिक लोग इसे ढूंढ सकें!

पढ़ने के लिए धन्यवाद।


  1. सरल Excel: वेब डेटा को 2 सरल चरणों में आयात करें सरल Excel: वेब डेटा को 2 सरल चरणों में आयात करें

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

  1. रास्पबेरी पाई से 3D प्रिंटर नियंत्रित करें: शुरुआती लोगों के लिए पूरी गाइड रास्पबेरी पाई से 3D प्रिंटर नियंत्रित करें: शुरुआती लोगों के लिए पूरी गाइड

    शुरुआती लोगों के लिए, 3D प्रिंटिंग एक कठिन शौक लग सकता है। हालांकि, एक बार जब आप समझ जाते हैं कि सब कुछ कैसे काम करता है, तो 3D प्रिंटिंग मजेदार और आनंददायक बन सकती है। शुरुआती लोगों के लिए, विंडोज 10 के साथ उपयोग के लिए प्लग-एंड-प्ले 3D प्रिंटर खरीदना आकर्षक हो सकता है। कुछ उदाहरणों में मोनोप्राइस

  1. ब्राउज़र में GIF को ऑटो-प्ले होने से रोकें: उन्हें अक्षम करने के सरल चरण ब्राउज़र में GIF को ऑटो-प्ले होने से रोकें: उन्हें अक्षम करने के सरल चरण

    एनिमेटेड GIF स्थिर छवियों को जीवंत बनाने का सबसे अच्छा तरीका है। वे विभिन्न छवि प्रारूपों (JPEG, PNG) की तुलना में संदेश और जानकारी को आसानी से और बेहतर तरीके से 전달 करते हैं। वे दिलचस्प, मजेदार, आत्म-व्याख्यात्मक और एक ही समय में अर्थहीन हो सकते हैं। उनके बारे में सबसे अच्छी बात यह है कि वे कैसे संव