2014-05-18 1 views
2

안드로이드 ListView에서 스크롤하여 특정 행을 선택하는 오이 단계 정의를 작성하고 싶습니다. iOS에서 다음을 수행 할 수 있습니다.Android 용 Calabash를 사용하면 특정 목록보기 행으로 스크롤하고 터치하는 단계를 작성하는 방법은 무엇입니까?

scroll_to_cell(:row => 1, :section => 0) 
touch("tableViewCell indexPath:1,0") 

Android에서 어떻게 동일한 작업을 수행 할 수 있습니까?

업데이트 : : calabash-android 소스에서 listview의 모든 항목을 반복하는 each_item이라는 함수를 찾았습니다. 그러나 항목 자체와 대조적으로 목록 뷰에서의 위치 만 정수로 반환하기 때문에 어떻게 가치가 있을지 아직 알 수 없습니다. 그래서,

each_item do |product| 
    touch(product) 
end 

기능은 여기 살고 ... 그런 짓을 할 수 없습니다 나는 일반적인 해결책을 찾을 수 없습니다 https://github.com/calabash/calabash-android/blob/master/ruby-gem/lib/calabash-android/operations.rb#L145

답변

2

. 안드로이드 솔루션은 ListView 구현에 의존합니다. 특히 ListView를 위해 작동


이 솔루션은 다음과 같습니다 :

1) 우선, query("ListView", {:getItemAtPosition => 1})을 수행하고 GUI의 텍스트에 동일 쿼리 결과의 속성을 찾습니다. 예를 들어, "name" 일 수 있습니다.

2) 그럼 당신은 다음과 같은 단계를 특정 위치에 항목을 만질 수 : 내 안드로이드 응용 프로그램에서이를 확인한

Then /^I click the (\d+)(?:st|nd|rd|th) list item$/ do |row| 
    scroll_to_row("ListView", row+1) 
    touch "* text:\"#{query("ListView", {:getItemAtPosition => row+1})[0]["name"]}\"" 
end 

, 그것은 작동합니다.

관련 문제