2011-08-14 21 views
8

मेरे पास एक पृष्ठ पर एक बटन है जो केवल एक निश्चित तत्व पर होवर करते समय दिखाई देता है। लेकिन मैं यह समझ नहीं सकता कि इसे कैसे अनुकरण किया जाए और फिर लिंक पर क्लिक करें ताकि मैं कैपिबारा और सेलेनियम का उपयोग करके इसका परीक्षण कर सकूं।कैपेरा पर होवर माउस

उत्तर

5

आप की तरह, इस के लिए एक कस्टम परिभाषित चरण का उपयोग कर सकते हैं:

When /^I click "([^"]*)" inside element "([^"]*)"$/ do |button, element_name| 

के अंदर, आप की तरह कुछ लिखें:

begin 
    evaluate_script("$('#{element_name}').trigger('mouseover')") 
    rescue Capybara::NotSupportedByDriverError 
end 

और फिर आप उस बटन को आप चाहते हैं :)

क्लिक करें
+0

: इस कोड का प्रयास करें मंडराना आधारित ड्रॉप-डाउन ... हम जिस तरह से किसी प्रकार का जरूरत स्पष्ट रूप से कुछ बातों के लिए चारों ओर एक नकली माउस को स्थानांतरित करने के लिए ... – fringd

+0

यह imho काम करना चाहिए । इस तरह अधिक स्पष्ट होने का प्रयास करें: मूल्यांकन_स्क्रिप्ट ("$ ('div # name> ul> li> a: (# {menu_name})') है। ट्रिगर ('माउसओवर')")। इसके अलावा, afaik सेलेनियम x, y आयामों में एक कर्सर को स्थानांतरित करने का समर्थन करता है, लेकिन यह मजेदार नहीं है;) – socjopata

+0

Socjopata, आप किस कैपिबरा ड्राइवर का उपयोग कर रहे हैं और क्या आप सुनिश्चित हैं कि आप सीएसएस का उपयोग कर रहे हैं: होवर और जावास्क्रिप्ट या jquery's। होवर (। ..)? – fringd

0

मुझे कैपिबारा + सेलेनियम ड्राइवर का उपयोग करके "माउस होवर" अनुकरण करने का एक तरीका मिला। दुर्भाग्य से इस सीएसएस लिए काम नहीं करता

module Capybara 
    module Node 
    class Element 
     def hover 
     @session.driver.browser.action.move_to(self.native).perform 
     end 
    end 
    end 
end 
+0

यह काम नहीं कर रहा है –

+0

सेलेनियम के क्रोम और फ़ायरफ़ॉक्स ड्राइवरों के साथ मेरे लिए काम करता है। जवाब देने से पहले आपको होवरिंग के बाद एक सेकंड के अंश की प्रतीक्षा करनी पड़ सकती है। यदि यह अभी भी काम नहीं कर रहा है, तो 'डीबगर' मणि का उपयोग करें, अपने कैपिबरा परीक्षणों में से किसी एक में 'डीबगर' पर कॉल डालें, और उसके बाद सेलेनियम कमांड टाइप करने के साथ प्रयोग करें क्योंकि आप देखते हैं कि क्रोम/एफएफ ब्राउज़र विंडो में क्या हो रहा है। –

+0

ओह, एफएफ में आपको देशी घटनाओं को सक्षम करने की आवश्यकता हो सकती है। यह सेलेनियम दस्तावेज़ों में है ... –

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