2011-04-14 13 views
5

ट्रिगर नहीं किया गया है मैं एफएफ सेलेनियम आईडीई प्लगइन का उपयोग कर एक पेज का परीक्षण करने की कोशिश कर रहा हूं।सेलेनियम आईडीई - JQuery ऑनक्लिक हैंडलर

वहाँ निम्नलिखित की तरह एक मेनू संरचना है ..

<ul class="parent"> 
    <li class="child"><span><a href="something.html">link text</a></span></li> 
    <li class="child"><span><a href="somethingelse.html">other text</a></span></li> 
<ul> 

ली तत्वों उन्हें करने के लिए बाध्य एक हॉवर घटना है। वे होवर ईवेंट वास्तविक लिंक टैग पर एक क्लिक ईवेंट पंजीकृत करते हैं। (मैं सरलीकरण के लिए जावास्क्रिप्ट में से कुछ छीन लिया है)

var menu = $('ul.parent'); 

    $("> li.child", menu).hover(function() { 

    $(this).find('> a').click(function() {    
     $(this).parent().addClass('active-trail'); 
     return false; 
    }); 
    }, function() {}); 

तो सेलेनियम का उपयोग कर रहा क्लिक इन कड़ियों में से एक तो मैं उम्मीद करेंगे हैंडलर कहा जाता है। यह नहीं है और क्लिक को निष्पादित किया गया है (और लिंक का पालन किया गया है, बदले में झूठ लौटाया जा रहा है)।

मैंने कोशिश की है (अन्य उत्तरों पढ़ने के बाद) माउसअप और माउसडाउन। मैंने पहले लीवर (होवर इवेंट को सक्रिय करने के लिए) पर फिर से होवर करने के लिए फायरएवेंट का उपयोग करने की कोशिश की है और फिर एंकर पर क्लिक करने के लिए एक और फायरवेन्ट .. लेकिन यह भी काम नहीं करता है।

तो किसी भी मदद की सराहना की जाएगी। एक jquery आपूर्ति क्लिक हैंडलर ट्रिगर करने के लिए सेलेनियम का उपयोग करने का सिर्फ एक बुनियादी प्रदर्शन शायद मुझे सही देखने के लिए पर्याप्त होगा!

धन्यवाद, पैट्रिक।

उत्तर

2

आप fireEvent() के साथ सही हैं, क्या आप वाकई इसका उपयोग कर रहे थे?

यदि आप onClick हैंडलर को आग लगाना चाहते हैं तो आप fireEvent(locator, "click")fireEvent(locator, "onClick") नहीं करेंगे।

यदि आप स्क्रिप्ट उत्पन्न करने के लिए सेलेनियम आईडीई का उपयोग कर रहे हैं तो शायद आप यह सही कर रहे हैं।

सेलेनियम इस क्षेत्र में थोड़ा चक्कर आ रहा है, मुझे कई समान समस्याएं हैं।

+0

हाँ, निश्चित रूप से हैंडलर के रूप में "होवर" और "क्लिक" का उपयोग करना। जानना अच्छा है कि मैं सही क्षेत्र में देख रहा हूं! –

+0

सेलेनियम के साथ कुछ ऐसा हो सकता है जो होवर को क्लिक करने से पहले निष्पादित करने की प्रतीक्षा नहीं कर रहा है, दो आदेशों के बीच प्रतीक्षा जोड़ने का प्रयास करें। – Tnem

+0

मैंने विराम का उपयोग करने की कोशिश की लेकिन इससे कोई फर्क नहीं पड़ता। दिलचस्प बात यह है कि, यदि मैं पृष्ठ लोड करता हूं, तो मेरे माउस को तत्व पर ले जाएं (प्रभावी ढंग से होवर को मैन्युअल रूप से ट्रिगर करना), और उसके बाद एक क्लिक ईवेंट चलाएं - फिर मेनू प्रकट होता है। –

1

आप xpath उपयोग करने की कोशिश है यानी

selenium.Click ("xpath =/वंशज :: ली [शामिल (,।" कुछ ")] [2]/एक्स: एक")

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