uia动作失败,原因是:超时运行命令uia.tapOffset

时间:2015-03-16 13:41:02

标签: ios calabash calabash-ios

我在运行我的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_touchsafe_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

更新2

以下是有时失败的方案示例

enter image description here

以下是测试失败时屏幕截图

enter image description here

尝试点按标签栏项目似乎没有任何障碍......

0 个答案:

没有答案