appium+python自动化39-adb输入中文(ADBKeyBoard)

前言

上一篇提到“adb shell input textyoyo“ 可以通过adb 输入英文的文本,由于不支持unicode编码,所以无法输入中文,github上有个国外的大神写了个ADBKeyBoard输入法的apk,完美支持unicode编码,也能输入中文和其它字符了

ADBKeyBoard

1.ADBKeyBoard在github的源码地址ADBKeyBoard github 地址,有兴趣的可以去看看,这里我翻译成中文文档了

2.ADBKeyBoard是一个虚拟键盘,它接收来自系统broadcast的命令,可以使用ADB输入文本内容,以下是adb 的input事件发生文本。
但是,不能使用此命令发送Unicode字符

usage: input [text|keyevent]  input text  input keyevent

如下这种是不支持的

e.g. adb shell input text '你好嗎' is not going to work.

3.ADBKeyBoard就是为解决这个问题而专门开发的一个小工具,主要用于自动化测试方面。

使用方法

1.手机先安装ADBKeyBoard.apk,(下载地址:QQ群512200893群文件可下载),使用adb指令安装apk

adb install [本地电脑apk路径]

2.打开设置-语言输入法-默认输入法,先关掉“硬件-物理键盘”这个选项(模拟器上一般默认是开启的)

3.将ADBKeyBoard输入法设置为默认输入法,这里可以直接用adb命令设置

adb shell ime set com.android.adbkeyboard/.AdbIME

也可以手工去设置ADBKeyBoard输入法为默认输入法

输入中文

1.发送中文文本调用系统的broadcast,用到如下指令

adb shell am broadcast -a ADB_INPUT_TEXT —es msg '上海-悠悠’

2.其它的指令

- 输入中文文本 adb shell am broadcast -a ADB_INPUT_TEXT --es msg '上海-悠悠' - 发送 keyevent 事件  (67 = KEYCODE_DEL) adb shell am broadcast -a ADB_INPUT_CODE --ei code 67 - 发送编辑器动作 (2 = IME_ACTION_GO) adb shell am broadcast -a ADB_EDITOR_CODE --ei code 2 - 发送Unicode字符,To send 😸 Cat adb shell am broadcast -a ADB_INPUT_CHARS --eia chars '128568,32,67,97,116'

3.adb设置输入法相关指令

通过adb切换到ADBKeyBoard输入法 : > adb shell ime set com.android.adbkeyboard/.AdbIME   切换回原虚拟键盘(如切到swype输入法) > adb shell ime set com.nuance.swype.dtc/com.nuance.swype.input.IME   检查你的手机可用的虚拟键盘: > adb shell ime list -a

python代码实现

1.用python实现adb输入中文,封装输入方法

(0)

相关推荐

  • adb命令大全

    ADB 操作命令详解及用法大全 一.ADB是什么? 二.ADB有什么作用? 三.ADB命令语法 单一设备/模拟器连接 多个设备/模拟器连接 四.ADB常用命令 4.1 基本命令 4.1.1 查看adb ...

  • adb shell中的pm指得是什么

    表白:我想要把你宠成生活不能自理的孩子啊 讲解对象:adb shell中的pm指得是什么 作者:融水公子 rsgz 今天我们再来谈一个概念.在adb领域中会存在着pm这样一个东西.pm到底是什么东西呢 ...

  • 为开发者总结了Android ADB 的常用十种命令

    为开发者总结了Android ADB 的常用十种命令

  • appium+python自动化61-中文输入乱码问题解决

    前言 在夜神模拟器上输入中文,发现是乱码,将unicodeKeyboard和resetKeyboard参数设置为True了,发现还是没法解决. 打开手机设置语言和输入法,发现找不到Appium And ...

  • Appium+python自动化9-SDK Manager

    前言 SDK Manager到有哪些东西是必须安装的呢? 一.SDK Manager 1.双击打开SDK Manager界面 2.Tools里面前三个是必须下载的 --Android SDK Tool ...

  • Appium+python自动化10-AVD 模拟器

    前言 有些小伙伴没android手机,这时候可以在电脑上开个模拟器玩玩 一.模拟器配置 1.双击启动AVD Manager,进入配置界面 2.点Create按钮创建 3.配置模拟器基本信息 --AVD ...

  • Appium+python自动化11-adb必知必会

    前言 学android测试,adb是必学的,有几个常用的指令需要熟练掌握 一.检查设备 1.如何检查手机(或模拟器)是连上电脑的,在cmd输入: >adb devices 2.一定要看到上图红色 ...

  • Appium+python自动化12-appium元素定位

    前言 appium定位app上的元素,可以通过id,name.class这些属性定位到 一.id定位 1.appium的id属性也就是通过UI Automator工具查看的resource-id属性 ...

  • Appium+python自动化13-native和webview切换

    前言 现在大部分app都是混合式的native+webview,对应native上的元素通过uiautomatorviewer很容易定位到,webview上的元素就无法识别了. (手机上要先装个百度阅 ...

  • Appium+python自动化14-查看webview上元素(DevTools)

    前言 app上webview的页面实际上是启用的chrome浏览器的内核加载的,如何把手机的网页加载到电脑上,电脑的chrome浏览器上有个开发模式,是可以方便调试的. 一.环境准备 1.手机上装一个 ...

  • Appium+python自动化15-Mac上环境搭建

    前言 mac上搭建appium+python的环境还是有点复杂的,需要准备的软件 1.nodejs 2.npm 3.cnpm 4.appium 5.pip 6.Appium-Python-Client ...

  • Appium+python自动化16-启动ios上Safari浏览器

    前言 在mac上搭建appium踩了不少坑,先是版本低了,启动后无限重启模拟器.后来全部升级最新版本,就稳稳的了.本篇介绍如何用appium启动ios上的safari浏览器,然后可以用手机上浏览器做w ...