calabash-android:" y"和" center_y"通过RubyMine运行查询(" *")时,坐标偏移222

时间:2014-09-22 11:07:16

标签: calabash calabash-android

当通过终端上的控制台运行查询(“*”)时,我得到类似于以下内容的输出。此输出对于所有意图和目的都是正确的:

[
 [ 0] {
                    "id" => nil,
               "enabled" => true,
    "contentDescription" => nil,
                 "class" => "com.android.internal.policy.impl.PhoneWindow$DecorView",
                  "rect" => {
        "center_y" => 616,
        "center_x" => 360,
          "height" => 507,
               "y" => 363,
           "width" => 640,
               "x" => 40
    }
]

但是,当我在测试执行期间在RubyMine上运行相同的命令时,我得到错误的偏移输出,如下所示:

{
  "id"=>nil,
  "enabled"=>true,
  "contentDescription"=>nil,
  "class"=>"com.android.internal.policy.impl.PhoneWindow$DecorView",
  "rect"=>{
      "center_y"=>394,
      "center_x"=>360,
      "height"=>507,
      "y"=>141,
      "width"=>640,
      "x"=>40
  },
  "tag"=>nil,
  "description"=>"com.android.internal.policy.impl.PhoneWindow$DecorView{41fcdad8 V.E.....  R....... 0,0-640,507}
}

我只是在我的应用中的某个特定屏幕上看到此行为。其余的都按预期工作,但在这个屏幕上它一直是222像素。

这导致点击事件失败,因为它认为元素在屏幕上的位置远远高于实际值。

我偶尔会在控制台上看到错误的输出,同样也有正确的RubyMine输出,但是大约95%的时间都是我所描述的行为。

我正在使用calabash-android 0.5.2

有没有人知道造成这种变化的原因是什么?

1 个答案:

答案 0 :(得分:0)

事实证明,由于键盘在之前的屏幕上可见,因此应用程序在此屏幕上显示偏移量。

当键盘可见时单击以生成弹出窗口导致calabash在键盘仍然存在时读取视图的位置,或者至少在消失的过程中,因此" y"和" center_y"坐标被提升了几百个像素。

我使用' press_back_button'解决了这个问题。在选择弹出窗口之前关闭键盘。