Appium appium 如何点击键盘上的 “搜索” 键

_fake_tester_ · 2017年04月27日 · 最后由 Leo 回复于 2018年10月22日 · 2486 次阅读

如下方式不行

press_keycode(66) or keyevent(66)
set_value("北京\n")

用坐标定位不通用

有没有比较通用的方法,谢谢~

共收到 9 条回复 时间 点赞

楼主是测试的android应用? 不同的输入法软件,以及不同的应用APP,对输入法的按键定义都会不同,不太好找一个通用的方法。
你想用press_keycode(66) or keyevent(66),首先得要求你测试的这个APP的“搜索”按键,支持keyevent

meil000 回复

这个测试的微信,输入中文是用的unicodeIme,然后又调出系统上百度输入法

_fake_tester_ 回复

下面两个方法,不过都不能保证通用,换个输入法说不定就不行了
1:抓取控件id或name,按id或name来click
2:既然你keyevent(66)(66代表回车)不行,那你再试试看keyevent(84) (84代表搜索)

84 也不行

5楼 已删除

那能不能让他找含有“搜索”的地方点击

楼主解决了么??

我使用的是搜狗输入法 然后用了以下的方法解决了

excuteAdbShell("adb shell ime set com.sohu.inputmethod.sogou/.SogouIME");
//再次点击输入框,调取键盘
driver.findElementByXPath("//android.widget.EditText[@text='**********']").click();
//点击右下角的搜索,即ENTER键
driver.pressKeyCode(AndroidKeyCode.ENTER);
 /**
* 执行adb命令
* @param s 要执行的命令
*/

private void excuteAdbShell(String s) {
Runtime runtime=Runtime.getRuntime();
try{
runtime.exec(s);
}catch(Exception e){
System.out.println("执行命令:"+s+"出错");
}

查看真机中的输入法的方法:
在cmd 中 输入
adb shell ime list -s

driver.keyevent(66)
driver.press_keycode(66)
这两个python的方法提交搜索内容,亲测可用

使用adb shell ime set+输入法,切换个能用搜索命令的输入法就OK了

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册