使用query命令从Calabash得到意外结果



我刚刚开始使用Calabash,我正在尝试测试在Genymotion下运行的Android应用程序。

当我运行简单的测试来启动应用程序并查看初始屏幕时,我可以在Genymotion模拟器中看到屏幕显示,但当我使用查询命令时

puts(query('*'))

在返回的结果中,我看不到任何预期的内容(例如屏幕标题)。

相反,我只看到:

[{"id"=>nil, "enabled"=>true, "contentDescription"=>nil, "visible"=>true, "tag"=>nil, "description"=>"com.android.internal.policy.impl.PhoneWindow$DecorView{52824ec0 V.E..... R
....... 0,0-1080,1920}", "class"=>"com.android.internal.policy.impl.PhoneWindow$DecorView", "rect"=>{"center_y"=>960, "center_x"=>540, "height"=>1920, "y"=>0, "width"=>1080, "x"=>0}}
, {"id"=>nil, "enabled"=>true, "contentDescription"=>nil, "visible"=>true, "tag"=>nil, "description"=>"android.widget.LinearLayout{528127a0 V.E..... ........ 0,0-1080,1920}", "class"
=>"android.widget.LinearLayout", "rect"=>{"center_y"=>960, "center_x"=>540, "height"=>1920, "y"=>0, "width"=>1080, "x"=>0}}, {"id"=>"content", "enabled"=>true, "contentDescription"=>
nil, "visible"=>true, "tag"=>nil, "description"=>"android.widget.FrameLayout{5280cab8 V.E..... ........ 0,0-1080,1920 #1020002 android:id/content}", "class"=>"android.widget.FrameLay
out", "rect"=>{"center_y"=>960, "center_x"=>540, "height"=>1920, "y"=>0, "width"=>1080, "x"=>0}}, {"id"=>"NoResourceEntry-100", "enabled"=>true, "contentDescription"=>"Web View", "vi
sible"=>true, "tag"=>nil, "description"=>"org.apache.cordova.engine.SystemWebView{52821914 VFEDH.C. .F...... 0,0-1080,1920 #64}", "class"=>"org.apache.cordova.engine.SystemWebView", 
"rect"=>{"center_y"=>960, "center_x"=>540, "height"=>1920, "y"=>0, "width"=>1080, "x"=>0}}]

我做错了什么?

您看到的是Cordova生成的Android应用程序的布局。Cordova在SystemWebView中显示应用程序中的所有内容,因此您需要在其中查找HTML。您可以使用此查询在web视图中看到整个页面的html

query("SystemWebView css:'*'")

有关如何使用Calabash测试web视图的更多详细信息,请参阅此wiki页面。

相关内容

  • 没有找到相关文章

最新更新