2011-03-18 7 views
7

में कोई तत्व मौजूद है या नहीं, यह पता लगाने के लिए कि मैं वॉटर के लिए अपेक्षाकृत नया हूं लेकिन कोई तत्व मौजूद है या नहीं, इसके बारे में कोई अच्छा दस्तावेज (उदाहरण) नहीं मिल सकता है। निश्चित रूप से एपीआई चश्मा हैं, लेकिन अगर मुझे कोई उदाहरण नहीं मिलता है तो ये मेरे लिए बहुमूल्य छोटी समझ बनाते हैं।वॉटर

मैं दोनों के संयोजन लेकिन कुछ भी कोशिश की है काम करने के लिए ... लगता है अगर browser.image (: src "/media/images/icons/reviewertools/editreview.jpg").exists फिर ... अगर browser.image (: src "/media/images/icons/reviewertools/editreview.jpg").exists? तब ...

यदि किसी को भी इसे कार्यान्वित करने के तरीके के बारे में ठोस सुझाव है, तो कृपया मदद करें! धन्यवाद!

+0

छवि –

+0

हम केवल अनुमान लगा सकते हैं पर आप गलत क्या कर रहे हैं इसके बिना एचटीएमएल प्रदान करें के एचटीएमएल प्रदान करें, सभी के लिए हम जानते हैं कि इस बात एक लेकिन शायद एक

+0

Http://stackoverflow.com/questions/5359556/unable-to-find-method-for-detecting-if-element-exists-on-a-page/5396645#5396645 –

उत्तर

2

ऐसा लगता है कि आप इसे सही तरीके से उपयोग कर रहे हैं। यहां एक पुराना RDoc of Watir है।

क्या यह काम नहीं करता है क्योंकि वॉटर इसे नहीं ढूंढ सकता है? यह कहना मुश्किल है क्योंकि परीक्षण किए जा रहे पृष्ठ के लिए कोई स्रोत या लिंक नहीं है। मुझे लगता है कि मैं केवल image.exists का उपयोग करता हूं?। आम तौर पर, जब छवि मौजूद होती है तब से आने वाली त्रुटियां होती हैं लेकिन नहीं मिलती हैं:

  1. तत्व प्रकार के साथ संगत नहीं है। here विभिन्न विशेषताओं के साथ कौन सा ऑब्जेक्ट प्रकार पाया जा सकता है यह देखने में आपकी मदद करने के लिए एक चीटशीट है।
  2. क्या सही नहीं है। आपको थोड़ा सा खेलना पड़ सकता है। ब्राउज़र.इमेज (: src, /editreview.jpg/) जैसे मिलान करने के लिए रेगेक्स स्ट्रिंग को आज़माने पर विचार करें। अंतिम उपाय के रूप में, शायद element_by_xpath का उपयोग करें, लेकिन उसके साथ रखरखाव लागत है।
  3. स्थान सही नहीं है। शायद तत्व एक फ्रेम या उस तरह कुछ है। browser.frame ("विस्तार")। छवि (: src, /editreview.jpg/)।

उनको आज़माएं, लेकिन कृपया मुझे बताएं कि क्या काम करता है। एक और बात, आप किसके लिए जांच कर रहे हैं? यदि यह परीक्षण मानदंड का हिस्सा है, तो आप इसे इस तरह से संभाल सकते हैं। यदि आपको उस पर क्लिक करने की आवश्यकता है, तो .exists भूल जाओ? और बस उस पर क्लिक करें। रूबी आपको बताएगी कि यह वहां नहीं है। यदि आपको अनुग्रह होने की आवश्यकता है, तो begin/rescue के बारे में जानें।

गुड लक,

डेव

+0

का संभावित डुप्लिकेट आपके उत्तर के लिए धन्यवाद दोस्तों। डेव, क्या आप कृपया एक उदाहरण निर्दिष्ट कर सकते हैं कि मुझे image.exists का उपयोग कैसे करना है? मैं जिस कोड का उपयोग कर रहा हूं वह है: यदि ब्राउज़र.मेज (: src "/media/images/icons/reviewertools/editreview.jpg") .exists? काम नहीं करता है और लौटाता है: विज्ञापन in_Panel2.rb: 45: वाक्यविन्यास त्रुटि, अप्रत्याशित ')', केएनई की उम्मीद है ... reviewertools/editreview.jpg ") मौजूद है? ^ Admin_Panel2.rb: 48: सिंटैक्स त्रुटि, अप्रत्याशित kELSE, उम्मीद kEND Admin_Panel2.rb: 212: सिंटैक्स त्रुटि, अप्रत्याशित kEND, $ उम्मीद खत्म क्षमा करें, लेकिन मैं एक विशिष्ट उदाहरण के बिना खो रहा हूँ। धन्यवाद। – Rijksband

+0

@rijksband एक वाक्यविन्यास त्रुटि का अर्थ है कि रूबी दुभाषिया को कोड को पार्स करने में कोई समस्या थी। इसका मतलब एक लापता/अतिरिक्त कोष्ठक या अल्पविराम या कई अन्य कारणों से हो सकता है। इस मामले में यह गायब अल्पविराम: src और छवि पथ के बीच सबसे अधिक संभावना है। हो सकता है कि आप एक अधिक शक्तिशाली संपादक का उपयोग करने पर विचार करना चाहें क्योंकि उनमें से कई आपको लिखे गए त्रुटि को इंगित करेंगे। – juan2raid

2

कोड तुम्हें तैनात ठीक काम करना चाहिए। संपादित करें: ओह, गलत। जैसा कि कैटमून ने बताया, एक गायब कॉमा है।

browser.image(:src "/media/images/icons/reviewertools/editreview.jpg").exists? 

एक समस्या यह है कि आप में पकड़े सकता है अगर ब्राउज़र चर आपके द्वारा निर्दिष्ट वास्तव में एक तत्व जो मौजूद नहीं है है।

उदा।

b = Watir::IE.start(ipAddress) 
b.frame(:name, "doesntExist).image(:src "/media/images/icons/reviewertools/editreview.jpg").exists? 

ऊपर कोड एक Watir :: UnknownFrameException फेंक देते हैं। आप पहले फ्रेम को सत्यापित करने या प्रारंभ/बचाव ब्लॉक में कोड के आस-पास की पुष्टि करके इसे प्राप्त कर सकते हैं।

+0

यह अभी भी अनुमान लगा रहा है कि चीज वास्तव में एक छवि है .. क्या होगा यदि यह एक बटन या एक लिंक है? एचटीएमएल प्रदान किए बिना हम केवल अनुमान लगा सकते हैं। –

15

ऐसा लगता है कि आप पैरामीटर के बीच एक अल्पविराम खो रहे हैं।

होना चाहिए

if browser.image(:src, "/media/images/icons/reviewertools/editreview.jpg").exists? 

इसके अलावा आप को पता है गुण क्या समर्थन कर रहे भविष्य में this page उपयोगी पा सकते हैं।

संबंधित मुद्दे