2011-06-07 11 views
8

के बाद तत्व विशेषता मान की जांच करने के लिए जीबी का उपयोग कैसे करें, यहां थोड़ी मदद के बाद, मैं जीबी का उपयोग करके एक कार्यात्मक वेब टेस्ट लिख रहा हूं और अक्षम एक फॉर्म सबमिट करने का मूल्य मान पहले और बाद में सबमिट करना चाहता हूं एक घटना हुई है, प्रवाह निम्नानुसार होना चाहिए:पेज इवेंट

  1. लोड पृष्ठ, सबमिट बटन को पृष्ठ स्रोत में अक्षम के रूप में घोषित किया गया है, इसलिए इसे अक्षम किया जाना चाहिए <input type="submit" class="submit" disabled="true"/>
  2. पृष्ठ पर एक चेकबॉक्स चेक करें, इस क्रियान्वित जो प्रोग्राम के उपयोग करते हुए विकलांग सबमिट बटन सक्षम हो जाएगा JQuery कोड का एक टुकड़ा में परिणाम चाहिए: $('input.submit').attr('disabled', false);

मेरा पहला प्रयास अभिकथन $('input.submit')[email protected] == 'true' उपयोग करने के लिए किया गया था, इस दर्शन पृष्ठ लोड के बाद प्रारंभिक जांच के लिए काम करें, हालांकि बटन को सक्षम करने के लिए मेरे JQuery कोड को निष्पादित करने के बाद बाद में चेक एक ही परिणाम देता है। इसने मुझे आश्चर्यचकित कर दिया है कि इस तरह की जांच केवल पृष्ठ लोड समय पर मूल्य की रिपोर्ट करने में सक्षम है और किसी भी बाद के प्रोग्रामेटिक परिवर्तन नहीं देखती है?

मैंने फिर गेब की jquery itegration की खोज की, मुझे उम्मीद थी कि मैं सबमिट बटन के मूल्य को वापस करने के लिए इसका उपयोग कर सकता हूं और इस पर मेरा जोर दे सकता हूं। $('input.submit').jquery.attr('disabled') == false हालांकि जीबी दस्तावेज पुष्टि करता है कि .jquery संपत्ति के सभी कॉल जीबी नेविगेटर उदाहरण वापस लौटते हैं, इसलिए मुझे नहीं लगता कि मैं अपनी इच्छित जानकारी वापस कर सकता हूं।

मुझे यह भी संदेह है कि JQuery कोड वास्तव में सबमिट बटन अक्षम राज्य को टॉगल कर रहा था या नहीं, मैंने फ़ायरबग का उपयोग करके इसका व्यापक रूप से परीक्षण किया है और यह पुष्टि कर सकता है कि यह ब्राउज़र में पूरी तरह से काम कर रहा है, इसलिए मुझे संदेह है कि यह मेरे साथ एक मुद्दा है जीबी की समझ या शायद खुद जीबी की सीमा?

यह मुझे मारता है कि किसी पृष्ठ पर कुछ क्रिया करने के बाद तत्व विशेषताओं के मूल्य की जांच करना आम उपयोग-मामला हो सकता है, इसलिए मैं उम्मीद कर रहा हूं कि मुझे ऐसा करने का कुछ आसान तरीका याद आया है। मुझे इस तरह से हल करने में मदद करने के लिए किसी भी पॉइंटर्स के लिए सबसे आभारी होंगे।

चीयर्स,

Edd

उत्तर

3

Geb मेलिंग सूची पर मेरी पोस्ट rebroadcasting:

आप jQuery कोड है कि बटन सक्षम बनाता है पर अमल करने के बाद, यह संभव है कि इससे पहले कि आप परिणाम की जाँच कर रहे कोड वास्तव में बटन सक्षम किया है? उदाहरण के लिए, कुछ ऐसा कर रहे हैं:

waitFor { $("input.submit")[email protected] == "false" } 
10

कुछ और परीक्षण किए हैं और अब एक संतोषजनक परिणाम प्राप्त कर लिया है। मैं चीजों को मैं अब जो विश्वास करते हैं inproper हैं के एक जोड़े कर रहा था, अर्थात् disabled विशेषता इस तरह सच्चे और झूठे के अवैध मूल्यों के लिए मूल्य निर्धारित करने के लिए कोशिश कर रहा: HTML forms specification को देखते हुए

$('input.submit').attr('disabled', true); 
$('input.submit').attr('disabled', false); 

विकलांग विशेषता दिखाया गया है नहीं करने के लिए एक मूल्य लें, बल्कि इसकी उपस्थिति अकेले इंगित करती है कि एक तत्व अक्षम है।

$('input.submit').attr('disabled', true); 
//This time we remove the disabled attribute rather than setting it to false. 
$('input.submit').removeAttr('disabled'); 

नोट:: मेरे कोड संशोधित इस सम्मान और विशेषता एक तत्व की सक्षमता इंगित करने के लिए दूर करने के लिए चाल किया है लगता है मैं अभी भी true को विकलांग के मूल्य की स्थापना कर रहा हूँ के बाद से मैं कैसे करने के लिए निर्धारित नहीं कर सकता मूल्य निर्धारित किए बिना विशेषता सेट करें, अधिक जानकारी के लिए this SO post देखें।

का उपयोग करते हुए ऊपर मैं अब Geb उपयोग करने के लिए इस तरह के तत्वों के विकलांग/सक्षम स्थिति का दावा करने में सक्षम हूँ:

//Check that something is disabled. 
[email protected] == 'true' 

//Check that something is enabled. 
[email protected] == 'false' 

नोट: Geb एक बूलियन बजाय उम्मीद स्थिति का संकेत एक स्ट्रिंग शाब्दिक की आवश्यकता के लिए लगता है , जो आईआईआरसी ने मेरे दावों को असफल कर दिया।

तो यह है - अब सब अच्छी तरह से काम कर रहे हैं और मैं गीब परीक्षणों के भार लिखने के साथ चल रहा हूं! आशा है कि यह स्पष्टीकरण दूसरों के लिए कुछ उपयोग है।

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