Calabash ios使用each_cell方法对表的每个单元格执行操作。
each_cell(:query => "tableView", :animate => false, :post_scroll => 0.1) do |row, sec|
touch("tableViewCell indexPath:#{row},#{sec}")
tap "back_button"
end
我有一个集合视图,然后我尝试使用相同的代码
each_cell(:query => "collectionView", :animate => false, :post_scroll => 0.1) do |row, sec|
touch("collectionViewCell indexPath:#{row},#{sec}")
tap "back_button"
end
但它无法正常工作并出现此错误:
NoMethodError:“ * ”的未定义方法“次”:字符串
所以我认为这个功能可能仅限于表格视图?有关如何在集合视图上对每个单元格执行操作的任何想法?谢谢!
答案 0 :(得分:-1)
我做的是......
创建一个名为each_item
的函数,类似于each
def each_item(opts={:query => 'UICollectionView', :post_scroll => 2, :animate => true}, &block)
uiquery = opts[:query] || 'UICollectionView'
check_element_exists(uiquery)
secs = query(uiquery,:numberOfSections).first
secs.times do |sec|
items = query(uiquery,{:numberOfItemsInSection => sec}).first
items.times do |item_pos|
scroll_to_collection_view_item(item_pos, sec, opts)
sleep(opts[:post_scroll]) if opts[:post_scroll] and opts[:post_scroll] > 0
yield(item_pos, sec)
end
end
end
要使用此功能,您可以执行以下操作
each_item do |item_pos, section_number|
# YOUR CODE HERE
# to use the query with collection view item
# query("<HERE USE YOUR CUSTOM CLASS OF THE ITEMS IN THE CELLS> indexPath:#{item_pos},#{section_number}")
end