編寫UI自動(dòng)化時(shí),搜索輸入后,模擬鍵盤Enter鍵,使用方法androidDriver.pressKeyCode(66),但是實(shí)際運(yùn)行時(shí)并沒有生效。
解決方法
在使用方法androidDriver.pressKeyCode(66)前,將輸入法切換成搜狗輸入法。
public void pressEnter(){
String udid = (String)this.driver.getCapabilities().getCapability("udid");
String setCmd = String.format("adb -s %s shell ime set com.sohu.inputmethod.sogou/.SogouIME", udid);
TimeUnit.SECONDS.sleep(3L)
String setCmd = String.format("adb -s %s shell ime set com.sohu.inputmethod.sogou/.SogouIME", udid);
excuteAdbShell(setCmd);
String enter = String.format("adb -s %s shell input keyevent 66", udid);
excuteAdbShell(enter);
//運(yùn)行后切換回原輸入法
String reSetCmd = String.format("adb -s %s shell ime set com.android.adbkeyboard/.AdbIME", udid);
excuteAdbShell(reSetCmd);
}
private void excuteAdbShell(String s) {
Runtime runtime=Runtime.getRuntime();
try{
runtime.exec(s);
}catch(Exception e){
System.out.println("執(zhí)行命令:"+s+"出錯(cuò)");
}