[Android]calabash-android再深入

大搜車-自娛發表於2013-07-25
1.遇見的問題,client與test-server版本不一致
解釋:client指代的是gem包的版本,test-server指代的是calabash-android原始碼下/ruby-gem/test-server的版本,下載下來原始碼自然就是這個版本不提供更新解除安裝等功能,但是client端可以控制
2.也可以修改gitclone原始碼下的calabash-android原始碼,將version對比修改正確,但不保證相容性
3.遇到http請求無法連線到模擬器,模擬器接收不到訊息,app_runing返回結果為flase,是因為gem安裝包內的operations.rb檔案內的server_port沒有值,修改一下就好,最好也修改一下原始碼的http請求,新增read_timeout,以及open_timeout。

如此解決calabash無法執行的問題了。

然後再講解一下calabash-android console命令列用法:
參考文章:http://sriram-iyengar.blogspot.com/2013/04/android-setting-up-calabash-android-for.html

大致的意思是:
calabash-android console xxxx.apk
然後可以執行githup上的query語句了,很爽的說。

點選第6個imageview,加入進貨單
irb(main):030:0> touch("imageview index:6")
{
"success" => true,
"message" => "",
"bonusInformation" => []
}
檢視當前有多少個imageview
irb(main):027:0> query("imageview").count
11
點選list列表裡的第一個
irb(main):083:0> performAction('press_list_item', 1, 0)
{
"message" => "",
"bonusInformation" => [],
"success" => true
}
performAction('get_list_item_text') 獲取每個item的text文字
performAction('get_url') 獲取當前webview的url
performAction('drag',50,50,70,1,10) 下拉一屏,按百分比
performAction( 'get_list_item_properties', '1' , 1 )['bonusInformation'] 獲取item的屬性
performAction('dump_body_html') 獲取當前webview原始碼
通過webview屬性進行點選
irb(main):004:0> performAction('click_by_selector',"a[href='/touch/seller/sellerOfferList?sellerOfferType=AUDITING']")
{
"message" => nil,
"bonusInformation" => [
[0] "true"
],
"success" => true
}
執行webview JS指令碼
performAction('execute_javascript',"(alert('aaa'))")

相關文章