0

我在运行 Calabash 测试并尝试触摸元素时遇到了一些随机错误

uia action failed because: Timed out running command uia.tapOffset('{:x 187.5, :y 131.5}')

我在YosemiteXcode 6.2iOS Simulator (iPhone 6 iOS 8.1)上运行测试

使用的葫芦版本是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

这是一个有时会失败的场景示例

在此处输入图像描述

这是测试失败时的屏幕截图

在此处输入图像描述

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

4

0 回答 0