如何向下滚动UITable视图,直到我在Calabash中看到标签为“Value”的单元格

时间:2013-05-02 13:45:23

标签: iphone ios cucumber calabash

如何向下滚动UITableView,直到我在 Calabash / Cucumber 中看到标签为“Value”的单元格。  我一直在尝试使用:

      Then I swipe down until I see "Value"

并使用:

      Then I scroll down until I see "Value"

但它们似乎都没有用。谢谢!

我尝试使用上述内容时得到的信息显然是:

  

您可以使用这些步骤定义未定义的步骤   片段:

     

然后(/ ^我向下滑动直到看到“(。*?)”$ /)do | arg1 |等待#   使用您希望结束的代码表达上面的正则表达式

4 个答案:

答案 0 :(得分:11)

添加步骤定义

Then /^I scroll to cell with "([^\"]*)" label$/ do |name|
    wait_poll(:until_exists => "label text:'#{name}'", :timeout => 20) do
    scroll("tableView", :down)
    end
end

到ProjectName / features / step_definitions / my_first_steps.rb ruby​​文件和 在你的calabash脚本中添加

Then I scroll to cell with "AAA" label

它对我来说很好。

答案 1 :(得分:2)

每个黄瓜框架都有一组预定义的步骤。当然,这些步骤并未涵盖所有可能性。如果您需要其他功能,则必须定义自己的步骤:

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

我无法帮助您完全实现(什么是“价值”?)但您可以找到核心功能here

可能你需要功能

scroll(uiquery, direction)

(其中uiquerytableView

如果您使用此功能并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

答案 2 :(得分: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

答案 3 :(得分:1)

以下也应该有效

Then(/^I scrolldown until "(.*?)" is visible$/) do |arg1|
  until query("lable text:'#{arg1}'").length > 0
    scroll("tableView", :down)
  end
end

按照

调用此方法
Then I scrolldown until "XY" is visible