android自动化测试中不能触发search的解决方法
最近写android自动化脚本时遇到一个小问题:在界面上输入搜索的关键词,但在旁边并没有一个搜索按钮。手动操作时只能点击键盘上的一个搜索小按钮(由点击输入框时弹出的键盘)。
在做自动化时,发现即使定位到该键盘上的搜索,点击并不生效;换做发送keycode也不行,比如driver.press_keycode(84),keycode编码来源于:https://developer.android.com/reference/android/view/KeyEvent.html#KEYCODE_SEARCH。
另外要做的话还可以尝试通过坐标来执行tap操作,不过这样并不好,因为不稳定,当换了设备后分辨率有变化,那么坐标也会有变化。
最后通过execute_script执行mobile_command来解决了该问题,触发了搜索行为:
driver.execute_script("mobile: performEditorAction", { "action" => "search"})
参考文章:
http://appium.io/docs/en/commands/mobile-command/
https://discuss.appium.io/t/unable-to-tap-search-button-on-android-softkeyboard/1598/25