2016-04-03 20 views
0

Calabash'ı kullanmaya yeni başladım ve Genymotion altında çalışan bir Android uygulamasını denemeye çalışıyorum.Calabash tarafından sorgu komutu kullanılarak beklenmeyen bir sonuç

Uygulamayı başlatmak ve ilk ekranı görüntülemek için basit bir test çalıştırdığınızda, ben Genymotion emülatör ekran görüntüsünü görebilirsiniz ama sorgu komutunu kullandığınızda

puts(query('*')) 

Ben herhangi görmüyorum döndürülen sonuçtaki beklenen içerik (örneğin ekran başlığı).

yerine sadece bakın: Yanlış

[{"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}}] 

yapıyorum?

cevap

2

Gördüğünüz şey, Cordova tarafından oluşturulan Android uygulamasının düzenidir. Cordova, uygulamanızdan SystemWebView içinde her şeyi gösterir, böylece HTML'nizi bulmak için oraya bakmak istersiniz. Sen

query("SystemWebView css:'*'") 

Calabash web görüşlerini test etmek konusunda daha fazla ayrıntı için this wiki page bakınız bu sorgu ile web görünümündeki tüm sayfanın html görebilirsiniz.

+0

Bu kesinlikle çözüldü. Teşekkürler. Ama bu calabash-android için tüm konserve adımları örneğin assert_steps işe yaramadı anlamına mı geliyor? Bu benim asıl sorunumdu. –

+0

sorguyu ("* {text CONTAINS [c] ''}") çağrısını "wait_for_text" yöntemiyle sonlandıran "Metni görüyorum" adımını kullanıyordum. Eğer bu olmalı demek kadarıyla : sorgu ("SystemWebView css: '* {text İÇEREN [c] ''}'") Gerçekten bu nasıl olacağını aktardı anlamıyorum rağmen? –

+0

> Hazırlanmış adımlar. Doğru. Çalışmayacaklar. Kendi adımlarını yazmalısın. – jmoody