如何仅在 id 存在的情况下继续平移?
How to keep panning only if id exists?
我正在尝试平移元素列表以确认屏幕上存在设置的最小元素数。我 运行 遇到的问题是 'pan' 将继续进行,即使我将最小值设置为较高的数字(大于页面上的实际数字),测试也会通过。
When /^I swipe through my list of chat suggestion cards I should see the minimum$/ do
i = 0
while i < 12
i += 1
wait_for_element_exists("* id:'itemContainer'")
pan("* id:'itemContainer'", :left)
end
end
有没有办法检查 id: 'itemContainer' 的数量是否确实存在,如果最小数量不存在则使其失败?
查询只会 return 当前在屏幕上的元素,因此您必须滑动屏幕以使所有卡片对 calabash 可见并检查它们。假设 query("* id:'itemContainer'") 一次只能找到一个,即卡片的大小是整个屏幕,
12.times do
card_before_panning = query("* id:'itemContainer'")
pan("* id:'itemContainer'", :left)
card_after_panning = query("* id:'itemContainer'")
assert_not_equal card_before_panning, card_after_panning
end
如果一次可以在屏幕上看到不止一张卡片,那么您将需要进行额外的检查。假设当时可能有两个可见
11.times do
card_before_panning = query("* id:'itemContainer' index:0")
pan("* id:'itemContainer'", :left)
card_after_panning = query("* id:'itemContainer' index:0")
assert_not_equal card_before_panning, card_after_panning
end
# Then check that there are two visible on the final screen.
assert_equal 2, query("* id:'itemContainer'").size
请注意,这仅在卡片在您的应用中以不同方式显示时才有效,即它们具有不同的内容。如果 query("* id:'itemContainer'") 对于每张卡片都有相同的结果,那么 calabash 将无法区分它们以查看是否有任何变化。
我正在尝试平移元素列表以确认屏幕上存在设置的最小元素数。我 运行 遇到的问题是 'pan' 将继续进行,即使我将最小值设置为较高的数字(大于页面上的实际数字),测试也会通过。
When /^I swipe through my list of chat suggestion cards I should see the minimum$/ do
i = 0
while i < 12
i += 1
wait_for_element_exists("* id:'itemContainer'")
pan("* id:'itemContainer'", :left)
end
end
有没有办法检查 id: 'itemContainer' 的数量是否确实存在,如果最小数量不存在则使其失败?
查询只会 return 当前在屏幕上的元素,因此您必须滑动屏幕以使所有卡片对 calabash 可见并检查它们。假设 query("* id:'itemContainer'") 一次只能找到一个,即卡片的大小是整个屏幕,
12.times do
card_before_panning = query("* id:'itemContainer'")
pan("* id:'itemContainer'", :left)
card_after_panning = query("* id:'itemContainer'")
assert_not_equal card_before_panning, card_after_panning
end
如果一次可以在屏幕上看到不止一张卡片,那么您将需要进行额外的检查。假设当时可能有两个可见
11.times do
card_before_panning = query("* id:'itemContainer' index:0")
pan("* id:'itemContainer'", :left)
card_after_panning = query("* id:'itemContainer' index:0")
assert_not_equal card_before_panning, card_after_panning
end
# Then check that there are two visible on the final screen.
assert_equal 2, query("* id:'itemContainer'").size
请注意,这仅在卡片在您的应用中以不同方式显示时才有效,即它们具有不同的内容。如果 query("* id:'itemContainer'") 对于每张卡片都有相同的结果,那么 calabash 将无法区分它们以查看是否有任何变化。