当前位置: 首页 > news >正文

Airtest遇到模拟器无法输入中文的情况该如何处理?

1. 前言

最近有收到粉丝的一些提问,使用Airtest的 text 接口,发现在部分模拟器上, text 无法输入中文,不知道该怎么处理。

今天我们就输入这个小问题,来详细聊一下。

2. Airtest的输入法简介

对于Android设备来说,Airtest的输入功能,由 Yosemite.apk 提供。有了这个apk,就可以支持我们在Android设备上输入中文,而不是局限于只能输入英文字母的 adb input text 。

所以在调用Airtest的 text 接口之前,请务必在Android设备上安装好 Yosemite.apk 。

3.在部分特殊设备上无法输入中文

也有一些情况,即使我们安装好了 Yosemite.apk ,使用 text 接口进行输入时,却只能输入英文,没法输入中文,我们以mumu12模拟器为例:

在给mumu12输入中文的时候,出现了1个报错:

airtest.core.error.AdbShellError: stdout[b''] stderr[b"\r\nException occurred while executing 'text':\r\njava.lang.NullPointerException: Attempt to get length of null array\r\n\tatcom.android.server.input.InputShellCommand.sendText(InputShellCommand.java:284)\r\n\tat com.android.server.input.InputShellCommand.runText(InputShellCommand.java:256)\r\n\tat com.android.server.input.InputShellCommand.onCommand(InputShellCommand.java:197)\r\n\tat com.android.modules.utils.BasicShellCommandHandler.exec(BasicShellCommandHandler.java:97)\r\n\tat android.os.ShellCommand.exec(ShellCommand.java:38)\r\n\tat com.android.server.input.InputManagerService.onShellCommand(InputManagerService.java:3591)\r\n\tat android.os.Binder.shellCommand(Binder.java:950)\r\n\tat android.os.Binder.onTransact(Binder.java:834)\r\n\tat android.hardware.input.IInputManager$Stub.onTransact(IInputManager.java:1167)\r\n\tat android.os.Binder.execTransactInternal(Binder.java:1184)\r\n\tat android.os.Binder.execTransact(Binder.java:1143)\r\n"]

这是因为模拟器没有真正把 Yosemite 输入法调起来导致的,我们可以到 Yosemite.apk 里面,找到输入法,启用 Yosemite 输入法,之后关闭掉其余的输入法:

之后再通过下述脚本的方式,给设备输入中文文本:

# -*- encoding=utf8 -*- __author__ = "AirtestProject" from airtest.core.api import * auto_setup(__file__) shell('am broadcast -a INPUT_TEXT --es text "大话西游"')

4. 小结

今天主要讲述了,在部分特殊Android设备里,遇到 text 输入接口无法完成的一些输入事情的时候,我们还可以通过怎样的方式来实现我们的输入效果,本质还是调用了 Yosemite.apk 里面的功能。

最后作为一位过来人也是希望大家少走一些弯路,在这里我给大家分享一些软件测试的学习资料和我花了3个月整理的软件测试自学全栈,这些资料希望能给你前进的路上带来帮助。

视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。

http://www.cnnetsun.cn/news/104510.html

相关文章:

  • FastReport开源版:快速构建.NET报表系统的完整指南
  • HeidiSQL数据库管理工具:从零开始的完整安装与使用指南
  • MATLAB与XFoil翼型分析:终极集成指南
  • EmotiVoice语音合成在新闻播报自动化中的效率提升
  • 浏览器原生Python编程革命:JupyterLite深度解析与应用指南
  • Vue Query Builder 终极指南:快速构建可视化查询界面
  • 从零构建高可用Agent服务:Docker备份恢复的7步黄金流程
  • 网站域名没有被百度收录
  • echarts给饼图以及折线图悬浮提示框添加单位
  • 从文本到情感语音:EmotiVoice如何重塑语音合成新标准?
  • GEO对决传统SEO:AI搜索时代,品牌如何赢得“心智推荐”
  • 【专家级排错手册】:基于Docker Compose的Agent服务日志采集失败的7种场景与应对方案
  • 极简主义知识管理新体验:Obsidian Minimal主题完全使用指南
  • 如何在gem5-gpu上实现全系统仿真模式 full-system mode
  • 兼容为基,革新为核 —— 金仓数据库重塑企业数据库运维新体验
  • YOLOv12架构革命:通过UniRepLynne主干网络实现特征提取能力的代际飞跃**
  • NewGAN-Manager终极指南:足球经理头像配置一键生成
  • 38、深入探索Linux系统中的事件追踪工具
  • 震惊!这家外卖点单小程序开发公司,竟让客户排队抢着合作!
  • MATLAB进行图像分割从基础阈值到高级分割
  • Figma-Context-MCP完整使用指南:让AI助手秒懂你的设计意图
  • 【Docker Buildx镜像推送终极指南】:掌握多架构构建与高效推送的5大核心技巧
  • EvolveGCN实战宝典:从入门到精通的动态图神经网络完全指南
  • 你的WebRTC安全吗?深度解密Janus加密防护体系
  • 5、CoreOS 调试与自动更新全解析
  • 13、容器技术与CoreOS集成:标准、运行时与高级特性
  • 21、容器化与微服务基础设施的技术洞察与实践指南
  • 2、轻量级容器优化操作系统及CoreOS技术详解
  • 别瞎挖了!弱口令挖掘就这 3 招(1 字典 + 2 技巧),月入 5K 稳
  • 语音合成也能‘演戏’?EmotiVoice演绎悲伤与喜悦