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

这篇具有很好参考价值的文章主要介绍了Airtest遇到模拟器无法输入中文的情况该如何处理?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

此文章来源于项目官方公众号:“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模拟器为例:

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

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

在给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文章来源地址https://www.toymoban.com/news/detail-670470.html

到了这里,关于Airtest遇到模拟器无法输入中文的情况该如何处理?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python使用weditor+uiautomator2连接控制安卓模拟器遇到的问题及解决办法

    Python控制安卓模拟器或真实手机时,最常用和好用的模块是uiautomator2(因为美亚等大公司的软件都是使用uiautomator2),而最常用和好用的调试助手是weditor(因为其他的象UIautomatorviewer、Appium我都试过,不太好用)。 要操控安卓系统,需要做一些初始化的工作。简言之: 一是

    2024年02月15日
    浏览(61)
  • 华为OD机试 - 中文分词模拟器(Java & JS & Python & C & C++)

    哈喽,本题库完全免费,收费是为了防止被爬,大家订阅专栏后可以私信联系退款。感谢支持 给定一个连续不包含空格的字符串,该字符串仅包含英文小写字母及英文标点符号(逗号、分号、句号),同时给定词库,对该字符串进行精确分词。 说明: 精确分词:字符串分词

    2024年04月10日
    浏览(46)
  • 【解决方案】adb无法连接雷电模拟器问题

    目录 雷霆9问题(安卓9.0) 雷霆5问题 (安卓7.0) 问题一:adb 提示adb server version(31) doesn\\\'t match this client(41)  问题二:more than one device and emulator 必须开启调试模式(默认为关闭) 解决办法:使用雷电模拟器安装目录下的adb.exe,位置这样找。 执行adb logcat后会得到这个日志

    2024年02月07日
    浏览(176)
  • Android Studio 模拟器无法访问互联网解决方法

    Android Studio 中的安卓模拟器无法访问互联网 打开模拟器, 对WALN中的 AndroidWifi的 DNS进行修改 1: 打开AS, 启动模拟器 (版本30, Android11 ), 进入设置, 点击 网络和互联网, ---- 进入WLAN 2: 点击 AndroidWifi, 点击高级选项, 此时显示出网络详情, 记住 ip和网关, 记不住用手机拍照。 3: 然后点

    2024年02月13日
    浏览(59)
  • 解决DevEco Studio 的鸿蒙模拟器黑屏无响应无法打开

    问题:多显卡(核显和独显)设备,比如游戏本或某些台式机。 在使用鸿蒙开发工具 DevEco Studio 打开模拟器后,模拟器可能会一直黑屏无响应,过一会儿模拟器直接闪退。(Android studio的安卓模拟器不会闪退,鸿蒙模拟器有这个问题) 解决:在设备管理器里面禁用一个显卡,

    2024年02月22日
    浏览(53)
  • 【华为OD机试真题 C++语言】483、中文分词模拟器 | 机试真题+思路参考+代码解析(C卷)

    🍂个人博客首页: KJ.JK   🍂专栏介绍: 华为OD机试真题汇总,定期更新华为OD各个时间阶段的机试真题,每日定时更新,本专栏将使用C++语言进行更新解答,包含真题,思路分析,代码参考,欢迎大家订阅学习

    2024年02月19日
    浏览(42)
  • [Android] Logcat无法连接模拟器查看log,提示:No connected devices.

    将IDEA版本更换后,发现无法使用Logcat查看日志信息。Logcat区域无法识别到逍遥模拟器。 Logcat区域提示: No connected devices. 这里以 IntelliJ IDEA 2022.3.2+逍遥模拟器 处理方法为例: 第一步 : IDEA中打开Terminal,进入SDK的adb文件所在位置…SDKplatform-tools 【此处SDK前面的具体路径根据

    2024年02月06日
    浏览(41)
  • Hbuilder无法正常运行微信小程序模拟器到指定页面为启动页

    来龙去脉 我们在使用hbuilderx软件运行uni-app项目时, pages.json pages 数组的首项为应用启动页,默认情况下,选择运行项目预览,打开的页面路径自然是 pages/index/index 。 但是我这里选择 pages/my/my.vue 文件,然后选择菜单【运行】【运行到小程序模拟器】【微信开发者工具 - 指定

    2024年02月11日
    浏览(70)
  • 【[获取文件失败] 以下文件已被配置忽略打包上传,模拟器无法获取】解决方法【官方】

    希望本文章对大家有用,解决开发中遇到的难题,如有最新解决方案,也欢迎大家评论,看到即时更新。 * 微信开发工具更新为最新版 1.05.22.xxxx 版本时,因小程序开发不规范 存在以下问题, 存在app.json中未配置页面路径 存在自定义js 使用 import 导入 误识别情况 存在引入三

    2024年02月09日
    浏览(93)
  • iOS 16.4 之后真机与模拟器无法使用Safari调试H5页面问题

    背景 iOS 16.4之后用真机调试H5时候发现,Safari中开发模块下面无法调试页面 解决方案 在WKWebView中设置以下代码解决 然后再次调试就可以了

    2024年01月20日
    浏览(66)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包