2

Calabash/Cucumberに「Value」というラベルの付いたセルが表示されるまで UITableView を下にスクロールするにはどうすればよいですか。私はそれを使用してそれをやろうとしてきました:

      Then I swipe down until I see "Value"

そして使用:

      Then I scroll down until I see "Value"

しかし、どれも機能していないようです。ありがとう!

上記を試したときに表示されるメッセージは明らかに次のとおりです。

次のスニペットを使用して、未定義のステップのステップ定義を実装できます。

次に (/^「(.*?)」が表示されるまで下にスワイプします$/) |arg1| を実行します pending # 上記の正規表現を希望するコードで表現 end

4

4 に答える 4

2

すべてのキュウリ フレームワークには、事前定義された一連のステップがあります。もちろん、これらの手順ですべての可能性がカバーされるわけではありません。追加の機能が必要な場合は、独自の手順を定義する必要があります。

When /^I scroll (up|down) until I see "([^\"]*)"$/ do |direction, something_to_see|
   #implement the step here
end

正確な実装(「値」とは何ですか?)についてはお手伝いできませんが、ここでコア機能を見つけることができます

おそらくあなたは機能が必要になるでしょう

scroll(uiquery, direction)

(どこuiqueryになりますtableView

この関数を使用すると、「値」が表示されるまで下にスクロールelement_is_not_hiddenするサイクルを作成できます。while

次のようなものかもしれません (Calabash はわかりませんが、Frank は少し知っています)。

When /^I scroll (up|down) until I see "([^\"]*)"$/ do |direction, something_to_see|
   max_scroll_tries = 10

   [0..max_scroll_tries].each do
      break if element_is_not_hidden("view marked:'#{something_to_see}'")
      scroll("tableView", direction)
   end

   check_element_exists_and_is_visible("view marked:'#{something_to_see}'")
end
于 2013-05-02T15:57:09.647 に答える
1

テーブルには行とセクションがあり、コードの編成方法に基づいて、以下のコードで行またはセクションを使用します

def scroll_side_panel(text)

section=0
scroll_to_cell(:row => 0, :section => 0) # scroll to top of view
sleep 1 # wait for a second

#Scroll to each element and compare text, if there is a match break
each_cell(:animate => false, :post_scroll => 0.2) do |row, sec|
  puts "#{query("tableViewCell indexPath:#{row},#{sec} label", :text)}  #{text}"
  if query("tableViewCell indexPath:#{row},#{sec} label", :text).first==text
    break
  end
  section=section+1
end
puts "table view text found at element number:#{section}"
end
于 2014-01-13T17:34:20.513 に答える