2016-04-03 8 views
0

を使用して、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}}] 

何をしているのですか?

答えて

2

あなたが見ているのは、Cordovaによって生成されたAndroidアプリのレイアウトです。 Cordovaは、あなたのアプリケーションからSystemWebViewの中のすべてを表示するので、あなたのHTMLを見つけるためにそこを見る必要があります。あなたはカラバッシュでWebビューをテストする方法の詳細については、このクエリ

query("SystemWebView css:'*'") 

参照this wiki pageでWeb表示でページ全体のHTMLを見ることができます。

+0

それは間違いなくそれを解決しました。ありがとう。しかし、それは、かっこよさのためのすべての缶詰めされたステップ - アンドロイド、例えばassert_stepsが動かないということですか?それが私の元々の問題でした。 –

+0

私はwait_for_textメソッドで クエリ( "* {text CONTAINS [c] ''}") を呼び出すことを終了する「テキストを見る」ステップを使用していました。 クエリ( "SystemWebViewのCSS:: '{ *テキストは、[C] CONTAINS ''}'") 私は本当にこれが引用されるだろうか理解しないが、あなたはこれがあるべき言うから ? –

+0

>缶詰めのステップ。正しい。彼らは動作しません。あなたは自分のステップを書くべきです。 – jmoody