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



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

[
 [ 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%的情况下,行为都是我所描述的。

我正在使用葫芦安卓0.5.2

有人知道是什么导致了这种变异吗?

事实证明,偏移量出现在应用程序的这个屏幕上,因为键盘在上一个屏幕上是可见的。

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

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

相关内容

  • 没有找到相关文章

最新更新