2013-07-03 9 views
7

मेरे पास एक वेब एप्लिकेशन है जिसे मैं वेबड्राइवर और Python का उपयोग करके स्वचालित कर रहा हूं।सेलेनियम वेबड्राइवर का उपयोग करके छुपाए गए तत्व पर आप कैसे क्लिक करते हैं?

समस्या यह है कि इस मेनू को कुछ enter image description here जैसा मेनू है यदि मैं तीर बटन पर मैन्युअल रूप से क्लिक करता हूं तो यह एक अन्य उपमेनू तक फैलता है जहां से मुझे एक विशेष फ़ील्ड चुनने की आवश्यकता होती है।

मुझे यह तीसरा मेनू मिल सकता है लेकिन जब मैं मेनू का विस्तार करने और मुझे इसके उप मेनू आइटम दिखाने के बजाय element.click() का उपयोग करके उस पर क्लिक करता हूं तो यह सभी उप मेनू की समेकित सामग्री दिखा रहा है।

(मैन्युअल रूप से समूह के नाम से पहले छोटे तीर आइकन पर क्लिक करके उप मेन्यू का विस्तार प्राप्त किया जाता है) तो समूह समूह में से किसी एक को मेनू में विस्तारित करने के लिए मैं वास्तव में इस तीर आइकन पर कैसे क्लिक करूं।

यह HTML है जो तीसरे समूह मेनू से संबंधित है यदि यह मदद करता है।

<div id="node_3_item" class="treeLabelSelected" style="padding-left: 0px; background-position: 0px -24px;"> 
<span style="background-position: 0px -24px;">XXX Groups</span> 
</div> 
<div style="display: none;"></div> 
</div> 

display: none लाइन वास्तव में उप मेनू छिपा है

कैसे संभाल करने के लिए सराहना की होगी पर कोई भी सुझाव (जहां तक ​​मुझे पता कर सकते हैं के रूप में)। धन्यवाद

नोट: मैं पहले से ही छिपे हुए वेब तत्वों के साथ बातचीत करने से संबंधित कई प्रश्नों से गुजर चुका हूं लेकिन वे मेरी स्थिति से भिन्न हैं।

उत्तर

4

ले लो तत्व आप क्लिक करना चाहते:

driver.execute_script("$(arguments[0]).click();", element) 

नोट::

# Or using xparth or something 
element = driver.find_element_by_css_selector(css_selector) 

जावास्क्रिप्ट का उपयोग कर इसे क्लिक करें मैं jQuery का उपयोग कर रहा अन्यथा यह जावास्क्रिप्ट

साथ देशी चयन
+0

मुझे driver.execute_script ("तर्क [0] .click();" तत्व का उपयोग करना था) – Seth

4

आप JavaScriptExecutor

उदाहरण के लिए उपयोग कर सकते हैं। - document.getElementsByClassName('post-tag')[0].click();

जारी करना कि JavaScriptExecutor

के माध्यम से जे एस
(JavascriptExecutor(webdriver)).executeScript("document.getElementsByClassName('post-tag')[0].click();"); 
+1

क्या आप कृपया थोड़ा विस्तार कर सकते हैं। – abhi

+0

मुझे भी समझ में नहीं आता है। क्या हम एक असली दुनिया पाठ उदाहरण देख सकते हैं? मैं 'ptor.driver.executeScript कर रहा हूं (" document.getElementsByClassName ('logout') [0] .click(); "); 'और यह' अज्ञात त्रुटि: {" त्रुटि संदेश ":" 'अपरिभाषित' नहीं है फ़ंक्शन ('document.getElementsByClassName (' logout ') का मूल्यांकन [0] .click()') "' – BradGreens

0

jQuery आप एक लक्ष्य तत्व है जो अपने काम को सरल बनाएगा निर्दिष्ट करने के लिए उपयोग कर सकते हैं अपने आवेदन का उपयोग करता है। जैसे

$('.targetClass') 
संबंधित मुद्दे