2012-08-01 13 views
5

में विशेषता है, तो एक चेकबॉक्स जांच है या xpath के माध्यम से नहींXpath चेकबॉक्स निर्धारित करने के लिए "चेक किया गया" सेलेनियम आईडीई

वर्तमान में मैं कोशिश कर रहा हूँ निर्धारित करने के लिए कैसे:

//input[@type='checkbox' and @checked='true')] 

मैं एक ही आईडी तो साथ एक से अधिक चेकबॉक्स है मुझे अगला चेकबॉक्स चुनना है जिसे चयनित/चेक नहीं किया गया है। बाकी 1

|storeXpathCount | //input[@name='xyz' and @checked='checked'] | is_checked | 

यदि चेकबॉक्स 'xyz' चेक किया गया है, is_checked मूल्य होना चाहिए 0

:

विशेष रूप से मैं के लिए सेलेनियम आईडीई

संपादित क्या मैं वास्तव में जरूरत है sth की तरह इस की जरूरत है

धन्यवाद

उत्तर

3

enter image description here

यहाँ stnewrecord चेक-बॉक्स के वर्ग है। स्क्रिप्ट चेक-बॉक्स की संख्या संग्रहीत करेगी, और उस लूप के अनुसार उसका पालन किया जाएगा। यह जांच करेगा कि चेक-बॉक्स चेक किया गया है या नहीं, अगर नहीं, तो यह अगले चरण में आगे बढ़ेगा।

xpath=(//input[@class='stnewrecord'])[${i}] 

यह चेक-बॉक्स का xpath है। 'मैं' स्थिति है, यह प्रत्येक पुनरावृत्ति पर वृद्धि होगी।

मुझे पता है अपने आप के लिए काम कर रहा है या नहीं या नहीं ..

+0

कृपया मेरा प्रश्न फिर से जांचें – sakhunzai

+0

धन्यवाद यह' स्टोरवैल्यू | // इनपुट [@ नाम = 'xyz'] | is_checked' चेकबॉक्स चेक किया गया है या नहीं – sakhunzai

0

ऐसा कुछ काम कर सकता है:

//input[@checked='checked']/following-sibling::*[1][not(@checked='checked')] 
+1

'// इनपुट [ @ चेक = 'चेक'] 'काम नहीं कर रहा है यह मुद्दा है :( – sakhunzai

8

xpath

// Xpath, only works in certain situations 
//input[@type='checkbox' and @checked='xyz'] 

चेकबॉक्स के HTML स्रोत में अगर वहाँ एक विशेषता है के रूप में

checked="xyz" 
इस प्रकार ही काम करता है

जहां डेवलपर कुछ भी "xyz" को प्रतिस्थापित करने के लिए स्वतंत्र है: "सत्य", "चेक किया गया", "ischecked", ...

इसलिए यदि ऐसी कोई विशेषता नहीं है, तो ऊपर उल्लिखित xpath काम नहीं करता है।

// CSS selector, for all checkboxes which are checked 
input:checked[type='checkbox'] 

// CSS selector, for all checkboxes which are not checked 
input:not(:checked)[type='checkbox'] 

ध्यान दें कि बिना

[type='checkbox'] 

आप भी दिया जाएगा रेडियो:

जबकि अधिक जानकारी के लिए इंतजार कर रहे हैं, आप एक सीएसएस चयनकर्ता, जो इस तरह के एक विशेषता पर निर्भर नहीं करता विचार कर सकते हैं :-)

+0

पर निर्भर करता है कि मुझे लगता है कि मुझे मेरी बात याद आई है, मुझे सेलेनियम आईडीई – sakhunzai

2

हालांकि, सीएसएस कक्षाओं और चयनकर्ताओं के उपयोग किए बिना समाधान हैं।

उपयोग

//input[@type='checkbox' and @checked] 

या

//input[@type='checkbox' and not(@checked)] 

बजाय

//input[@type='checkbox' and @checked='xyz'] 
+1

के संबंध में विशिष्ट चीज़ की आवश्यकता है, क्या आपने सेलेनियम आईडीई में यह कोशिश की है? @ चेक किए गए मान 'चालू' या 'बंद' है, यह एक बुलियन नहीं है! – sakhunzai

+0

मैंने आईडीई में यह कोशिश नहीं की थी, लेकिन मैं PHPUnit के लिए सेलेनियम एक्सटेंशन के साथ इस अभिव्यक्ति अभिव्यक्ति का उपयोग करता हूं। हालांकि, मुझे लगता है कि एक्सपैथ इंजन दोनों टूल्स के लिए समान है। अगर आपने आईडीई में यह कोशिश की है तो मुझे बताएं। – nichiporets

+0

हाँ मेरे पास सेलेनियम आईडीई के लिए कुछ परीक्षण हैं और यह @checked विशेषता – sakhunzai

0

की आप इन में से एक कोशिश कर सकते हैं:

//*[@type='radio'][@checked='checked']/ 
//*[@type='radio'][not(@checked='checked')]/ 
+0

धन्यवाद के लिए 'ऑन', 'ऑफ' के बजाय बूलियन मान वापस नहीं करता है, हम उस संदर्भ में सेलेनियम आईडीई के संदर्भ में सख्ती से बात कर रहे हैं, उस संदर्भ में इसकी '@ चेक 'attirbutes के पास' चालू 'या' ऑफ 'मान है, कृपया इतिहास के लिए उपरोक्त उत्तरों को पढ़ें – sakhunzai

+0

मैंने इन्हें सेलेनियम आईडीई में परीक्षण किया है और ऐसा लगता है कि यह काम कर रहा था, लेकिन मैं गलत हो सकता था, क्योंकि मैं कुछ इसी तरह की तलाश में था । – kenorb

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