此文章来源于项目官方公众号:“AirtestProject”

版权声明:允许转载,但转载必须保留原链接;请勿用作商业或者非法用途

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 里面的功能。

如果还有其他关于输入感兴趣的问题,欢迎给我们私信/留言。


AirtestIDE下载:airtest.netease.com/

Airtest 教程官网:airtest.doc.io.netease.com/

搭建企业私有云服务:airlab.163.com/b2b

官方答疑 Q 群:117973773

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

  1. linux下QtCreator无法输入中文的情况

    解决linux下QtCreator无法输入中文的情况 本文由乌合之众 lym瞎编,欢迎转载 blog.cnblogs.net/oloroso 本文由乌合之众 lym瞎编,欢迎转载 my.oschina ...

  2. Android studio 模拟器中输入中文

    Android studio 模拟器中输入中文 学习了:https://blog.csdn.net/feidie436/article/details/78318752?locationNum=10& ...

  3. 在IOS 模拟器中 输入中文

    模拟器默认的配置种没有“小地球”,只能输入英文.加入中文方法如下: 找到模拟器的Settings--->General-->Keyboard-->International KeyB ...

  4. 关于ios8模拟器不能输入中文问题以及软键盘不弹出问题

    在Xcode菜单栏中   Product->scheme->Edit Scheme->Options->Application Region改为中国,就可以输入中文了, 如果软 ...

  5. iOS模拟器设置输入中文

    1.打开模拟器,选择Settings; 2.选择General  ->KeyBoard ->KeyBoards,选择中文输入法Chinese(Simplified)即可 以前尝试试了很多方 ...

  6. [iOS]解决模拟器无法输入中文问题

    第一步:设置schem 菜单项 -> Product-> Scheme -> Edit Scheme ->  然后在弹出的界面里 选择OPtion 项, 设置 Applicat ...

  7. powerpoint无法输入中文怎么办|ppt文本框无法输入中文解决办法

    powerpoint文本框无法输入中文的情况不知大家是否遇到过呢?反正小编是遇到过这样的情况的,简直是急煞人也!那么powerpoint无法输入中文时应该怎么办呢?本节内容中小编就为大家带来ppt文本 ...

  8. Appium+python自动化(十三)- 输入中文 - 一次填坑记(超详解)

    简介 无论你在哪里,在做什么都会遇到很多坑,这些坑有些事别人挖的,有些是自己挖的.别人挖的叫坑人,自己挖的叫自杀,儿子挖的叫坑爹.因此在做app自动化道路上也不会是一帆风顺的,你会踩很多坑,这些坑和你 ...

  9. xshell不能输入中文,显示为??

    不知不觉间发现自己使用xshell的时候不能输入中文了,输入的中文会变成"??",开始以为是编码问题,看了一下编码设置后发现没有任何问题,而且显示中文没有出现乱码问题,只是在输入的 ...

  10. eclipse中输入中文为繁体

    http://blog.163.com/guomaolin_gavin/blog/static/199618307201218104452930/ eclipse中输入中文为繁体! 2012-02-0 ...

随机推荐

  1. mac系统下,docker安装kibana报错,manifest for kibana:latest not found: manifest unknown: manifest unknown

    1.问题描述:mac系统下,docker安装kibana报错,manifest for kibana:latest not found: manifest unknown: manifest unkn ...

  2. 图书机读目录MARC简介,ISO格式目录数据生成

    一.简介 机读目录(Machine-Readable Catalogue,MARC),是利用计算机读取和处理书目信息,是计算机编目的产品. 它以代码形式和特定的结构将书目信息记录在计算机的存储载体上, ...

  3. Python潮流周刊#4:Python 2023 语言峰会

    你好,我是猫哥.这里记录每周值得分享的 Python 及通用技术内容,本期是特别加更版,聚焦于 Python 官方 2023 年语言峰会的系列博客. 博客原文:https://pythoncat.to ...

  4. Java发展史、JDK环境配置、运行原理及开发工具(学习的前期准备)

    一.Java的历史和三大版本 1.Java的发展史 Java由sun公司开发,Java之父James Gosling,Java是一门面向对象的编程语言,也称为"高级编程语言" Ja ...

  5. Bash 编程

    原文:https://seankross.com/the-unix-workbench/bash-programming.html[1] 数学 创建math.sh: #!/usr/bin/env ba ...

  6. ChatGPT教我用200行代码写一个简版Vue框架 - OpenTiny

    AI 是未来最好的老师 最近,我正在准备一份关于 Vue 基础的学习材料.期间我突发奇想:能否利用现在热门的 ChatGPT 帮我创建学习内容?其实 Vue 本身不难学,特别是基础用法,但是,如果你想 ...

  7. 混沌演练状态下,如何降低应用的 MTTR(平均恢复时间)

    在企业业务领域,锦礼是针对福利.营销.激励等员工采购场景的一站式解决方案,包含面向员工.会员等弹性激励SAAS平台.由于其直接面向公司全体员工,其服务的高可用尤其重要,本文将介绍锦礼商城大促前夕,通过 ...

  8. 基于Microsoft SEAL 同态加密场景特性

    基于Microsoft SEAL 同态加密场景特性 同态加密是一种特殊的加密技术,它允许在加密状态下进行计算操作而无需解密数据.在传统的加密算法中,对加密的数据进行运算操作通常需要先解密数据,然后再进 ...

  9. 用声明式宏解析 Rust 语法之 enum parser

    上一篇用声明式宏解析 Rust 语法 我们的 "macro parser" 解析了 function 和 struct, 这篇来尝试 parse 一下更复杂的 enum 为什么说 ...

  10. 使用numpy实现bert模型,使用hugging face 或pytorch训练模型,保存参数为numpy格式,然后使用numpy加载模型推理,可在树莓派上运行

    之前分别用numpy实现了mlp,cnn,lstm,这次搞一个大一点的模型bert,纯numpy实现,最重要的是可在树莓派上或其他不能安装pytorch的板子上运行,推理数据 本次模型是随便在hugg ...