2013-05-14 17 views
6

के साथ एक विशिष्ट स्ट्रिंग नहीं देखता, तब तक सूची दृश्य को स्क्रॉल करने के लिए कैसे करें, मुझे नीचे दिए गए पोस्ट के समान प्रश्न है, सिवाय इसके कि मुझे एंड्रॉइड के लिए काम करने की आवश्यकता है और नीचे दी गई पोस्ट आईओएस के लिए है। मैंने उस पोस्ट में दिए गए दोनों समाधानों का प्रयास किया है, लेकिन वे एंड्रॉइड के लिए काम नहीं कर रहे हैं। सभी मदद की सराहना की है!जब तक मैं कैलाबैश-एंड्रॉइड

How do i scroll a UITable view down until i see a cell with label "Value" in Calabash

+0

http://stackoverflow.com/questions/31120310/calabash-android-looping-through-a-listview-to-check/32471752#32471752 मैं इस सवाल यहाँ :) –

उत्तर

11

आप इस नए कदम परिभाषा जोड़ सकते हैं और यह एंड्रॉयड के लिए चाल करना चाहिए:

Then /^I scroll until I see the "([^\"]*)" text$/ do |text| 
    q = query("TextView text:'#{text}'") 
    while q.empty? 
    scroll_down 
    q = query("TextView text:'#{text}'") 
    end 
end 

यह मेरे लिए काम करता है और मैं आप के लिए आशा है कि यह एक ही करता है!

+1

हाय Proghero जवाब दे दिया है। प्रदर्शन क्रिया को कैलाबैश 0.5 के बाद हटा दिया गया है। क्या आपके पास एक स्निपेट है जो नवीनतम कैलाबैश संस्करण के लिए काम करता है? –

+1

बस ** निष्पादन ('scroll_down') ** **: scroll_down ** –

+1

इस विधि के आसपास एक टाइमआउट होना चाहिए क्योंकि यह अनिश्चित काल तक चल सकता है। – Tobias

1

performAction('scroll_down')

बयान में performAction() के बाद से हटा दिया गया है हुक़्क़ुम 0.5 इसलिए नवीनतम संस्करण के साथ मान्य नहीं

मेरे समाधान हो जाएगा,

def scroll_until_I_see(id) 
    until element_exists("* marked:'#{id}'") do 
    scroll("ScrollView", :down) 
    end 
end 
+0

नारदरा @ इस समाधान ने मेरे लिए काम किया। मैंने बेहतर समझने के लिए वाक्यविन्यास को भी हाइलाइट किया है ... – Aravin

+1

महान @Aravin Thats। मुझे लगता है, आपने मेरा समाधान चिह्नित किया है "यह जवाब उपयोगी है"? – NarendraC

+0

हाँ। इसने मेरा मुद्दा हल किया। – Aravin

1
#get total row count  
    count=query("ListView",:getCount).first.to_i 
    var=0 
    count.times { 
     query("ListView",{:smoothScrollToPosition=>var}) 
     var+=1 
     puts "#{count} #{var}" 
     #break if id found 
     break if element_exists("* marked:'#{id}'") 
     #fail if all rows are checked 
     fail("#{id} is missing") if var==count 
    } 
0

यहाँ विधि है , यदि तत्व नहीं मिला तो यह स्क्रीन स्क्रॉल करेगा और तत्व या खाली सरणी लौटाएगा।

def find_if_exist(text) 
    query_result = query("* marked:'#{text}'") 
    current_screen_state = query('*') 
    prev_screen_state = [] 

    while (query_result.empty? and (current_screen_state != prev_screen_state)) 
    prev_screen_state = current_screen_state 
    perform_action('drag', 50, 50, 60, 40, 20) 
    current_screen_state = query('*') 
    query_result = query("* marked:'#{text}'") 
    end 
    query_result 
end 
0

मेरे पास एक नेस्टेड दृश्य है इसलिए स्क्रॉल_डाउन फ़ंक्शन के साथ स्क्रॉल करना वैसे भी "कोई स्क्रोल व्यू" वापस नहीं करेगा। तो तुम सब क्या चर्चा की मैं इस एक काम कर पाते हैं पर आधारित

scroll("android.support.v4.widget.NestedScrollView",:down)

और इसे नीचे स्क्रॉल, लेकिन केवल एक बार स्क्रॉल करता है।

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