2012-12-17 35 views
0

我有以下步驟定義與黃瓜書面基於葫蘆。名稱說明了一切:我想要觸摸表視圖中的每個單元格,然後再次返回表格視圖。觸摸列表項只會接觸其他各小區

Then /^I touch every list item and go back again$/ do 
    total_sections = query("tableView", "numberOfSections") 
    last_section = total_sections[0] - 1 
    (0..last_section).each do |section| 
     total_rows = query("tableView", numberOfRowsInSection:section) 
     end_of_range = total_rows[0] - 1 
     (0..end_of_range).each do |row| 
      scroll_to_row "tableView", row 
      sleep(STEP_PAUSE) 
      macro %Q[I touch list item number #{row+1}] 
      macro %Q[I go back] 
     end 
    end 
end 

這一個簡單的表格視圖工作正常 - 但改變含有一個切片表視圖(AZ)不同的標籤,使這個腳本觸及的前幾個單元格,然後它變得怪異:它正確地滾動到下一細胞,但它接觸下一個細胞後,直到沒有可見的細胞挖掘。

是這兩個表視圖之間唯一不同的是,沒有一個有段和下排的高度。爲什麼它是這樣的?

回答

1

問題在於使用scroll_to_row功能。這適用於只有一個部分的簡單表格視圖。

更一般的功能scroll_to_cell支持部分和行。語法是稍有不同:

def scroll_to_cell(options={:query => "tableView", 
          :row => 0, 
          :section => 0, 
          :scroll_position => :top, 
          :animate => true}) 
    ... 
end 

例如

scroll_to_cell(:section => 1, :row => 2) 

對於你的情況也有一個高層次的功能each_cell。例如:

each_cell(:query => "tableView") do |row, sec| 
    touch("tableViewCell indexPath:#{row},#{sec}") 
    #... 
end 
+0

謝謝!已經在您的Google小組中涵蓋了此內容。函數'each_cell_and_back'更適合我所期望的行爲。 –