如何向下滚动UITableView,直到我在 Calabash / Cucumber 中看到标签为“Value”的单元格。 我一直在尝试使用:
Then I swipe down until I see "Value"
并使用:
Then I scroll down until I see "Value"
但它们似乎都没有用。谢谢!
我尝试使用上述内容时得到的信息显然是:
您可以使用这些步骤定义未定义的步骤 片段:
然后(/ ^我向下滑动直到看到“(。*?)”$ /)do | arg1 |等待# 使用您希望结束的代码表达上面的正则表达式
答案 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)
(其中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
答案 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