CalabashをベースにしたCucumberで書かれた次のステップ定義があります。名前がすべてを物語っています。テーブルビューのすべてのセルに触れて、もう一度テーブルビューに戻りたいと思います。
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)を含む別のタブに変更すると、このスクリプトが最初の数セルにタッチし、その後奇妙になります。次のセルに正しくスクロールしますが、その後にタッチします。タップするセルがなくなるまで次のセル。
これらの2つのテーブルビューの唯一の違いは、失敗したテーブルビューにはセクションがあり、行の高さが低いことです。なぜこのように振る舞うのですか?