Appium自动化(18):使用appium后安卓手机无法调出键盘解决方法

问题:用appium进行真机调试后,使用手机的app进行输入时无法调出键盘。

原因:appium调试时,将手机输入法设置成了Unicode IME

注:按键详细操作参考:转载至 作者:oscarforever   地址:https://www.cnblogs.com/oscarforever/p/10721774.html

解决方法:

  • 方法一,手机设置里修改输入法:

不同的手机型号、系统设置的步骤可能不同,以华为Magic3.1.0为例,设置-->系统和更新-->语言和输入法-->默认-->搜狗输入法

  • 方法二,adb命令切换手机输入法:

首先,获取手机当前可用输入法,命令:adb shell ime list -s

然后,切换成其他输入法,以搜狗输入法为例,命令:

adb shell settings put secure default_input_method com.sohu.inputmethod.sogou/.SogouIME

当然,将手机上删除appium相关的包也是可行的,但不推荐,否则每次调试都需要安装、删除。

或者通过python 中使用命令;如下

import time
from appium import webdriver
from appium.webdriver.webdriver import By
des = {
    'automationName': 'appium',
    'platformName': 'Android',
    'platformVersion': '9',  # 填写android虚拟机/真机的系统版本号
    'deviceName': 'huawei',  # 填写安卓虚拟机/真机的设备名称
    'appPackage': 'com.xinlang.daijiezou',  # 填写被测app包名
    'appActivity': 'com.xinlang.app.MainActivity',  # 填写被测app的入口
    'udid': 'HBSBB18821510293',  # 填写通过命令行 adb devices 查看到的udid
    'noReset': True,  # 是否重置APP
    'noSign': True,  # 是否不签名
    'unicodeKeyboard': True,  # 是否支持中文输入
    'resetKeyboard': False,  # 是否支持重置键盘
    'newCommandTimeout': 30  # 30秒没发送新命令就断开连接
}

# 定义sougou变量
sougou='adb shell ime set com.sohu.inputmethod.sogou/.SogouIME'
#连接Appium Server,初始化自动化环境
driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub',des)
# 设置时间等待,避免找不到元素报错
driver.implicitly_wait(10)
time.sleep(9)
# 在搜索框输入主播昵称
driver.find_element(by=By.ID, value='com.netease.cc:id/et_search_content').send_keys('power1')
# 实现手机键盘自带搜索操作
driver.press_keycode(66)
time.sleep(3)
# 结束
driver.quit()

猜你喜欢

转载自blog.csdn.net/YouJeffrey/article/details/130915982