需求:最近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