当通过终端上的控制台运行查询(“*”)时,我得到类似于以下内容的输出。此输出对于所有意图和目的都是正确的:
[
[ 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
有没有人知道造成这种变化的原因是什么?
答案 0 :(得分:0)
事实证明,由于键盘在之前的屏幕上可见,因此应用程序在此屏幕上显示偏移量。
当键盘可见时单击以生成弹出窗口导致calabash在键盘仍然存在时读取视图的位置,或者至少在消失的过程中,因此" y"和" center_y"坐标被提升了几百个像素。
我使用' press_back_button'解决了这个问题。在选择弹出窗口之前关闭键盘。