2014-06-18 14 views
5

में सीएसएस चयनकर्ता तत्व से पहले :: खोजने में असमर्थ मैं चेकबॉक्स चेक या अनचेक स्थिति के लिए परीक्षण करना चाहता हूं।सेलेनियम वेबड्राइवर

यह चेक बॉक्स के लिए एचटीएमएल कोड की जाँच की

<div classs="input-control checkbox"> 
<span class="check"> 
::before 
</span> 
</div> 

::before सीएसएस चयनकर्ता है।

जब मैं चेकबॉक्स को hoverover, यह पता चलता span.check::before

लेकिन

driver.FindElement(By.CssSelector("span.check::before")); 

रूप webelement थ्रो तत्व अपवाद नहीं मिला।

किसी भी मदद की अत्यधिक सराहना की जाएगी।

+3

आप कहते हैं कि आप एक ':: before' छद्म तत्व है, लेकिन अपने चयनकर्ता कहते हैं' :: after' ...? (मुझे यकीन नहीं है कि आप छद्म तत्व भी पा सकते हैं।) – BoltClock

+0

आपको छद्म तत्व को लक्षित करने की आवश्यकता क्यों है? – Arran

+0

'div.checkbox :: के बाद * नहीं *' span.check :: पहले 'है। प्रत्येक तत्व में अलग-अलग ':: पहले' और ':: छद्म-तत्वों के बाद' अलग हो सकता है। –

उत्तर

0

मुझे आपकी सटीक HTML के बारे में निश्चित नहीं है क्योंकि टिप्पणी का उल्लेख है कि आपके उदाहरण HTML में ::after नहीं है। आपके विवरण के आधार पर यह नीचे जैसा लगता है, लेकिन यह सुनिश्चित नहीं है कि आपकी सटीक स्थिति क्या है।

मैंने माउस चाल का उपयोग किया है और फिर उस तत्व के लिए प्रतीक्षा करें जो संशोधित सीएसएस/कक्षा प्रदर्शित करता है। माउस पहले तत्व पर चलेगा और होवर करेगा और फिर स्क्रीन पर दूसरे दिखाई देने की प्रतीक्षा करेगा। यह क्लिक के लिए समान रूप से काम करता है और फिर तत्व प्रकट होने की प्रतीक्षा करता है।

होवर कोड उदाहरण - अपने कोड भाषा और संरचना से मेल खाना चाहिए ...

[Actions Instance goes here].MoveToElement([IWebElementGoesHere]).Perform(); 

आप भी सिर्फ इस पुस्तकालय के लिए

[Actions Instance].Click([IWebElementGoesHere]).Perform(); 

संदर्भ कर सकते हैं: https://code.google.com/p/selenium/wiki/AdvancedUserInteractions

+0

धन्यवाद सब कुछ। हाँ, यह मेरी तरफ से टाइपो त्रुटि थी। मैंने निष्कर्ष कथन में गलत कचरा लगाया। यह ड्राइवर होना चाहिए था। ढूँढें (By.CssSelector ("span.check :: पहले")); – user3752861

+0

इसके अलावा, मुझे पता चला कि छद्म तत्व सेलेनियम सीएसएस चयनकर्ता द्वारा समर्थित नहीं हैं। उपर्युक्त मामले में क्रोम छद्म तत्व से पहले :: उत्पन्न करता है, जहां फ़ायरफ़ॉक्स डीओएम को बिल्कुल नहीं बदलता है। कोई छद्म तत्व नहीं बनाया गया था। – user3752861

2

मेरे पास है छद्म सीएसएस चयनकर्ताओं (समान रूप से पहले) के साथ इसी तरह के मुद्दे का सामना करना पड़ा, मैंने सेलेनियम जावा के "क्रियाएं" वर्ग का उपयोग करके इस मुद्दे को पार कर लिया है।

Actions action = new Actions(driver); 
action.moveToElement(driver.findElement(By.cssSelector("button[id$='save-button']"))).build().perform(); 

उम्मीद है कि यह मदद करता है।

धन्यवाद, संपत

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