葫芦Android随机失败,因为找不到元素

葫芦Android随机失败,因为找不到元素,android,calabash,calabash-android,Android,Calabash,Calabash Android,我们在这里使用葫芦android进行功能测试,我们遇到了奇怪的行为。 我们有一些简单的场景,如: When I skip the tutorial Then I must land on my 'fancy' screen 这种情况在大多数情况下都会成功,但有时(大约10-15%)可能会出现2次失败。第一个原因是,当我跳过教程时,查找的元素没有被葫芦android找到(它只是一个id为的按钮_ok)。当检查截图时,我们看到了元素,这很奇怪。我怀疑元素的动画,所以我有一个post\u timeo

我们在这里使用葫芦android进行功能测试,我们遇到了奇怪的行为。 我们有一些简单的场景,如:

When I skip the tutorial
Then I must land on my 'fancy' screen
这种情况在大多数情况下都会成功,但有时(大约10-15%)可能会出现2次失败。第一个原因是,当我跳过教程时,
查找的元素
没有被葫芦android找到(它只是一个id为
的按钮_ok
)。当检查截图时,我们看到了元素,这很奇怪。我怀疑元素的动画,所以我有一个
post\u timeout
,如下所示:

tap_when_element_exists("* id:'button_ok'", :post_timeout => 2)
但一切都没有改变

第二个可能的失败是,当我跳过教程的步骤
成功通过时,但下一个检查我们是否在正确页面的步骤失败,因为页面没有更改。。。在葫芦拍摄的屏幕截图上,我们确实在教程的页面上,而不是预期的下一页。既然我们更改页面的步骤成功了,怎么可能呢

有没有人已经面临过这种随机的失败


对不起,英语不好,不是我的母语

我在某些设备上遇到过类似的随机故障。问题有时是您尝试触摸的元素渲染时间晚于上一步的超时时间。在我的情况下,有时键盘花了太长时间才消失,阻止葫芦看到后面的元素。避免此类错误的正确方法是等待元素渲染出现

wait_for_element_exists(uiquery)

在每次触摸事件之前使用上面的内容,它可能会起作用。

你能发布葫芦日志吗,这将有助于理解问题。顺便说一句,葫芦日志记录失败的步骤。很遗憾,我没有很多日志要显示,当我跳过教程时,步骤
失败是因为找不到元素,我得到了这个错误
等待元素超时:*id:'button_ok'(葫芦::安卓::WaitHelpers::WaitError)
但是在屏幕截图上元素存在并且大部分时间都被找到。当步骤
时,我必须在我的“fancy”屏幕上着陆
失败,我得到了相同的错误(等待另一个元素的超时)但在这种情况下,这是合乎逻辑的,因为当我跳过教程时,
中没有发生页面更改,因此元素没有显示。谢谢您的建议,但我们已经使用wait_for_元素(30秒超时),不幸的是,问题仍然存在(