2011-09-07 11 views
6

मैं सेलेनियम वेबड्राइवर (v2.5.0) का उपयोग कर रहा हूं। मैं इस त्रुटि जब मैं एक driver.click(...) "कमांडसेलेनियम: मैं WebDriver कैसे अनदेखा कर सकता हूं "तत्व दिखाई नहीं दे रहा है" त्रुटि?

Element is not currently visible and so may not be interacted with Build info: version: '2.5.0', revision: '13516', time: '2011-08-23 18:30:44' System info: os.name: 'Linux', os.arch: 'amd64', os.version: '2.6.38-10-generic', java.version: '1.6.0_26' Driver info: driver.version: RemoteWebDriver 

का उपयोग ब्राउज़र में जब मैं एक तत्व पर माउस मंडराना, तत्व क्लिक किया जा रहा दिखाई देने लगता है मिलता है। इस बात कुछ दिखाई दे रहा है या नहीं की जाँच करने के कोई तरीका है?

उत्तर

12

आप कार्यों के माध्यम से यह कर सकते हैं। प्राप्त आप क्या चाहते हैं, अजगर Webdriver ग्राहक का उपयोग करने के लिए, लेकिन सिद्धांत एक ही है।

ActionChains(driver).move_to_element(driver.find_element(By.ID, 'Foo'))\ 
    .click(driver.find_element(By.Name, "Bar"))\ 
    .perform() 
+0

मैं पहले से ही तत्व पाया प्रदर्शन करते हैं। .send_keys के बजाय, मैं इसे मजबूर करने के लिए क्या करता हूं? – User

4

आपका सबसे अच्छा समाधान क्लिक() विधि का उपयोग नहीं करने के लिए है, लेकिन करने के लिए क्रियाएं लागू करें और सेलेनियम (वेबड्राइवर के माध्यम से) उन तत्वों को सक्रिय करने के लिए माउस पर चलने वाले माउस को अनुकरण करें जो तत्व को क्लिक करने योग्य/सक्षम बनाते हैं। एक बार जब आप तत्व सक्रिय कर लेंगे, तो आवश्यकतानुसार क्लिक() विधि करें। मुझे लगता है कि तत्व अक्षम है जिससे इसे पहले स्थान पर क्लिक करने योग्य नहीं बनाया जा सकता है।

अपना तत्व स्थापित करें आप रेंडर वेबबेलमेंट का भी उपयोग कर सकते हैं जिसमें एक होवर() विधि है, तो आपको निम्नलिखित क्रियाएँ ऑब्जेक्ट बनाने की आवश्यकता नहीं होगी, हालांकि यह मूल घटनाओं के साथ एप्लिकेशन को कैसे डिज़ाइन किया गया है, इस पर निर्भर नहीं हो सकता है। दोनों देखें कि कौन सा सबसे अच्छा काम करता है और सबसे सुरुचिपूर्ण है।

WebElement element = driver.findElement(By.id("element_id")); 

एक नया actions वस्तु webdriver

Actions actions = new Actions(driver); 

ले जाएँ तत्व के लिए कर्सर द्वारा समर्थित बनाएं - यह अपने तत्व क्लिक करने योग्य

actions.moveToElement(element).perform(); 

तत्व सत्यापित करें होने के लिए "को सक्रिय" होगा अब क्लिक करने योग्य या "सक्षम"

assertThat(element.isEnabled()); 
,210

अब क्लिक कार्रवाई

element.click(); 
संबंधित मुद्दे