需求:最近app改版,一個頁面的搜索輸入框原本是有一個搜索按鈕的,現在取消了,原有的自動化代碼中該按鈕找不到了,不得不使用虛擬鍵盤的搜索鍵來替代。
遇到的問題:
我的代碼中pressKeyCode(AndroidKeyCode.KEYCODE_ENTER)方法執行出現了異常,AndroidKeyCode.KEYCODE_ENTER,AndroidKeyCode.ENTER這兩個鍵值執行的效果變成了長按,導致我的代碼中頁面不停的往下滑動,加載。其他的類似於AndroidKeyCode.KEYCODE_search等按鍵均無法達到輸入搜索的結果。
ps:有可能是app里面的代碼邏輯跟虛擬按鍵有沖突,但是測試下來沒發現什么問題,可能是我開發能力不夠找不到問題所在吧。
解決過程:
一開始的時候經過反復嘗試各類鍵值,各種pres以及longpress方法等,均沒有達到預期效果,后面看到網上幾篇帖子的思路,准備拉起虛擬鍵盤來操作按鍵。又發現appium自帶的輸入法沒有虛擬鍵盤,最后只好切換到其他輸入法來操作,然而輸入法的虛擬鍵盤沒有常規的text、content-desc、resourc-id、index等控件屬性,只好通過模擬點擊指定區域坐標來實現。
具體實現思路:切換輸入法到手機安裝的搜狗輸入法,拉起虛擬鍵盤,通過點擊屏幕的指定區域坐標來實現點擊“搜索”按鈕的效果,點擊完成只好切回appium自帶輸入法。
具體代碼就不貼了。
參考文檔如下:
http://blog.sina.com.cn/s/blog_bd6a57440102wm6s.html
http://blog.csdn.net/niubitianping/article/details/52624417