Appium Appium appium 点击键盘上的 “搜索” 键的方法

小星 · 2017年05月17日 · 最后由 居test 回复于 2018年08月29日 · 2296 次阅读

首先我安装的是搜狗输入法,其它的输入法没有去尝试,有兴趣的朋友可以去试一下。(微信 APP)

先去 cmd 中查看一下你的真机中的输入法

cmd 中输入 adb shell ime list -s

然后代码中的方法是:

public void findAccountByKeyboard() throws InterruptedException, IOException{
        Thread.sleep(2000);
        driver.findElementById("com.tencent.mm:id/f_").click();
        driver.findElementByXPath("//android.widget.TextView[@text='Add Contacts']").click();
        driver.findElementByXPath("//android.widget.TextView[@text='Official Accounts']").click();
        driver.findElementByXPath("//android.widget.EditText[@text='Search Official Accounts']").sendKeys("*****服务号");       
        Thread.sleep(3000);
//      driver.pressKeyCode(66);

        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+"出错");
        }
    }
共收到 5 条回复 时间 点赞

ios appium 的键盘点击回车,这个如何处理?

黑科技啊

也是用 Java 写的,用了楼主的办法可行,很赞!!!
遇到的问题,唤起键盘也需要时间,可能会失败,解决方法就是唤起键盘后等待一些时间,再执行键盘点击 “确定”

usky 回复

以上两个属性设置为 true 之后,java 使用 keyevent66 是不可行的,我目前用的是楼主的方法👍

'unicodeKeyboard': 'True',
'resetKeyboard': 'True',
设置后,系统的输入被隐藏了, 直接用下面这两个方法的键盘事件就能提交搜索内容,这是 python 的两个写法,亲测可用

driver.keyevent(66)
driver.press_keycode(66)

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