首页 > 其他分享 >Appium自动化(18):使用appium后安卓手机无法调出键盘解决方法

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

时间:2023-05-28 19:32:29浏览次数:36  
标签:Appium 18 driver appium 输入法 adb 手机 com

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

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

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

解决方法:

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

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


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

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

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

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

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

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

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

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

当然,将手机上删除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()

 

标签:Appium,18,driver,appium,输入法,adb,手机,com
From: https://blog.51cto.com/YouJeffrey/6366196

相关文章

  • 尝试使用硬件电路来解释CRC计算(DS1820或者DS1822的CRC计算)
       之前在培训讲解DS1822的测试时,CRC计算都是以C语言进行讲解的。今天在练习Verilog的时候,觉得也可以使用硬件电路来讲解。   DS1820的CRC计算硬件电路示意图如下:   这个是示意图,方框代表寄存器,XOR代表异或门。Verilog的硬件描述如下:1moduleD_FF2(3......
  • Elasticsearch掰开揉碎第18篇SpringBoot集成Elasticsearch之文档操作
    引言上一篇主要讲解的是:创建SpringBoot项目、SpringBoot项目的配置修改、创建配置类、索引的API操作本篇主要讲解的是:文档的API操作(创建pojo、导入fastjosn依赖、添加文档、获取文档、获取文档信息、更新文档信息、删除文档信息、批量插入数据、高级查询)本篇文中所有操作,接着在上......
  • 最完美WIN11_Pro_22H2.22631.1825软件选装纯净版VIP41.8
    【系统简介】=============================================================1.本次更新母盘来自UUP_WIN11_PRO_22H2.22631.1825。进一步精简优化调整。2.只为呈现最好的作品,手工精简优化部分较多。3.OS版本号为22631.1825。个别要求高的就下MSDN吧,里面啥功能都有。4.集成《DrvCeo......
  • Appium自动化(13):Appium常用操作之TouchAction操作
    TouchAction操作Appium的辅助类,主要针对手势操作,比如滑动、长按、拖动等。其原理是将一系列的动作放在一个链条中,然后将该链条传递给服务器。服务器接受到该链条后,解析各个动作,逐个执行。TouchAction类支持的动作很多;常用操作如下:1、press(self,el=None,x=None,y=None): 按......
  • MATLAB实验一:一维寻优法(0.618法)程序设计
    一、实验目的通过一维寻优黄金分割法的程序设计,培养计算机的应用能力,并为今后无约束优化方法的学习和编程,奠定基础;掌握缩小寻优区间的黄金分割法。二、实验内容(1)用0.618法求解优化问题:minf(x)=x^2-sin(x)在区间[0,1]上的极小点和极小值;(2)根据0.618法算法步骤编写Matlab的程......
  • Appium自动化(10):Appium常用操作之设备操作
    设备基本操作前置条件:示例代码:fromappiumimportwebdriver#导入appium驱动包#1、定义一个DesiredCapabilities配置的字典des={'automationName':'appium','platformName':'Android',#平台的名称,iOS,Android,FirefoxOS'platformVe......
  • React18+TS+NestJS+GraphQL全栈开发示例
    React18+TS+NestJS+GraphQL全栈开发示例全栈开发是指一位开发人员可以熟练掌握前端、后端和数据库等多个领域的技术,能够完整地开发一个应用程序。在本文中,我们将介绍如何使用React18+TS+NestJS+GraphQL这个技术组合来进行全栈开发。技术选型在开始开发之前,我们需要选择合适的技术栈......
  • Android平台GB28181设备接入模块如何对接NV21、YV12、RGB、YUV等外部数据
    技术背景我们在对接Android平台GB28181设备接入模块的开发者时,遇到这样的场景,除了Android设备(如执法记录仪、智能安全帽等)自带的camera或camera2前后摄像头数据外,还有些场景是需要外部编码前或编码后数据,比如对接OTG类似的外置数据源,如NV12、NV21、YV12、RGB或YUV等格式,这里做个简......
  • Node翻译i18n多语言文件,1分钟生成100种语言包
    前言在需要国际化的项目中经常会遇到写完代码后需要将文案翻译到其他很多国家语言,人工翻译再复制文案到对应json或js/ts文件,这样将会浪费大量时间且非常枯燥,所以很有必要开发一款node插件,将这些重复乏味的工作交给机器完成。话不多说,先展示成品再讲原理插件链接https:/......
  • 318. Maximum Product of Word Lengths刷题笔记
    用的题解classSolution:defmaxProduct(self,words:List[str])->int:d={}forwinwords:mask=0forcinset(w):mask|=(1<<(ord(c)-97))d[mask]=max(d.get(mask,0),......