我在运行我的Calabash测试并尝试触摸元素时遇到一些随机错误
uia action failed because: Timed out running command uia.tapOffset('{:x 187.5, :y 131.5}')
我正在 Yosemite , Xcode 6.2 以及 iOS模拟器(iPhone 6 iOS 8.1)
上运行测试使用的Calabash版本为 0.13.0 。
有谁知道它为什么会发生以及如何解决?
当我说“随机”时,我的意思是有时相同的测试通过,有时它会因此错误而失败。我刚检查过,在文本字段中输入一些文本后尝试点击标签按钮时似乎总是失败。所以我的猜测是当它试图触摸标签按钮时键盘仍然存在
有关您的信息,这是我为输入文字而创建的方法
def type_text(accessibilityLabel, text)
query = "textField accessibilityLabel:'#{accessibilityLabel}'"
return unless safe_query(query).first["text"] != text
wait_for_ui_animation_to_end
safe_touch(query)
map(query, :setText, '')
map(query, :setText, text)
done
end
这些是我使用的safe_touch
和safe_query
方法
def safe_query(query)
wait_for(:timeout => 60, :timeout_message => "Timeout trying to query #{query}", :screenshot_on_error => true) do
element_exists(query)
end
query(query)
end
def safe_touch(query)
wait_for(:timeout => 60, :timeout_message => "Timeout trying to touch #{query}", :screenshot_on_error => true) do
element_exists(query)
end
touch(query)
end
以下是有时失败的方案示例
以下是测试失败时屏幕截图
尝试点按标签栏项目似乎没有任何障碍......