`
MyEyeOfJava
  • 浏览: 1162738 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
7af2d6ca-4fe1-3e9a-be85-3f65f7120bd0
测试开发
浏览量:71567
533896eb-dd7b-3cde-b4d3-cc1ce02c1c14
晨记
浏览量:0
社区版块
存档分类
最新评论

[android]uiautomator中文输入解决方案

阅读更多
UiAutomator不支持中文输入。

通过设置中文输入法为默认,UiObject.setText("pinyin ") 的方式,可以实现中文输入,但是只能输入一些固定的词组。

github上发现了一个 utf7ime 的好东西,可以实现中文输入,英文输入,中英文混合输入。简单来说,支持输入任何unicode编码的字符。
原理是:UiObject.setText( String) 只能接受ASCII码,整个过程是输入的unicode编码的字符串decode成ASCIl码,setText接受这些ASCll码再通过utf7ime这个输入法encode成unicode编码的字符串输出。
前置条件:手机装入此输入法并将之设为默认输入法

简单说一说整个过程,

打包下载 https://github.com/sumio/uiautomator-unicode-input-helper
导入其中的Utf7Ime , 生成apk并安装设置成默认输入法
把 helper-library 里面的Utf7ImeHelper.java导入自己的公用方法库,用于把字符串decode成ASCII码
最后生成脚本是这样的:

import com.android.uiautomator.core.UiObject;
import com.android.uiautomator.core.UiObjectNotFoundException;
import com.android.uiautomator.core.UiSelector;
import com.android.uiautomator.testrunner.UiAutomatorTestCase;
import com.sn.test.testUtil.AppAPI;
import com.sn.test.testUtil.Utf7ImeHelper;

public class TestInput extends UiAutomatorTestCase {
    private String caseName = this.getClass().getSimpleName();
    private String caseDetail = "";
    private String description = "";
    private boolean result = false;

    protected void setUp() throws Exception {
        super.setUp();
        AppAPI.setUp(caseName);
    }

    public void testDemo() throws UiObjectNotFoundException, RemoteException {

        new UiObject(new UiSelector().className("android.widget.TextView")
                .text("信息")).clickAndWaitForNewWindow();
        sleep(1000);

        new UiObject(new UiSelector().className("android.widget.RadioButton")
                .text("新信息")).clickAndWaitForNewWindow();
        sleep(1000);

        new UiObject(new UiSelector().className("android.widget.EditText"))
                .setText(Utf7ImeHelper.e("test test yingwen 中文一起输入"));
        sleep(1000);

下一步考虑如何将这个功能集成到脚本录制工具中去。

文章转载于:http://testerhome.com/topics/408
有空验证的同学,验证完后记得在博客上留言验证结果。
分享到:
评论

相关推荐

    uiautomator-input-helper:uiautomator中文输入解决方案

    Uiautomator Unicode Input Helper使您能够使用 Android 输入任何 Unicode(包括非 ASCII)字符。 Uiautomator 有 API 来设置可编辑字段中的文本。 如果文本仅包含 ASCII 字符,但不能输入任何非 ASCII 字符(例如...

    Android UiAutomator 自动化测试

    UIAutomator2作为UIAutomator的升级版,不仅支持更多的Android事件操作,还特别增加了对中文输入的支持,进一步提升了测试的实用性。使用UIAutomator2时,可以配合uiautomatorviewer工具,这个工具位于SDK的tools...

    Uiautomator源码

    通过深入学习Uiautomator的源码,开发者不仅可以提升测试技能,还能了解到Android系统的UI架构和事件处理机制,对于开发高效稳定的自动化测试解决方案具有重要意义。在实际工作中,结合源码理解,我们可以更好地定制...

    uiautomator源码

    UIAutomator是Google推出的一款用于Android自动化测试的框架,它主要针对设备上的UI组件进行操作和断言,为开发者提供了一种高效、可靠的UI自动化测试解决方案。本篇文章将深入探讨UIAutomator的源码,揭示其内部...

    uiautomator4.4.1版源码

    通过深入研究源码,开发者不仅可以提高测试效率,还可以提升对Android系统和应用交互的理解,为更复杂的测试场景提供解决方案。在实际项目中,结合源码学习和实践,可以进一步提升自动化测试的质量和覆盖范围。

    uiautomator2 自动化测试,简易Demo

    `uiautomator2`为Android自动化测试提供了一个强大而灵活的解决方案,特别适合进行功能测试和回归测试。通过学习和实践,开发者可以快速掌握其使用技巧,提升测试覆盖率,确保应用的质量。在本压缩包`uiauto_test`中...

    android-test-uiautomator

    在实际应用中,UIAutomator通常与JUnit、 Espresso等其他测试框架结合使用,形成完整的测试解决方案。例如,JUnit用于编写业务逻辑的单元测试,而UIAutomator负责UI层的集成测试。 最后,要充分利用UIAutomator,...

    PyPI 官网下载 | uiautomator2-0.1.9.tar.gz

    总之,uiautomator2作为Python库的一员,为Android自动化测试提供了高效且便捷的解决方案。无论你是测试工程师还是开发者,都能从中受益,提高测试的质量和效率。通过不断学习和实践,你将能够更好地驾驭这个强大的...

    android-testing-master.zip

    UIAutomator提供了一个高效、可靠的UI测试解决方案,而Instrumentation则让你能够从底层深入测试应用的各个方面。通过实际操作,你将能够编写出稳定且全面的自动化测试,从而提高应用的质量和用户体验。在实践中不断...

    python测试框架-python+requests+uiautomator2

    总之,Python测试框架结合`requests`和`uiautomator2`,为Android应用的自动化测试提供了高效、灵活的解决方案。通过学习和掌握这些工具,开发者能够快速定位和修复问题,提升软件产品的质量和用户体验。

    智慧操控:基于uiautomator2模块的电脑操控手机的功能的实现.zip

    uiautomator2是Android系统提供的一种UI自动化测试框架,它允许开发者编写自动化脚本来模拟用户与应用程序的交互,如点击、滑动、输入文本等操作。本资料主要探讨如何利用uiautomator2来实现这一目标。 1. **...

    android-testing

    7. **AndroidX Test Library**: AndroidX测试库是一套全面的测试工具,包含Espresso、JUnit、Mockito等组件,提供了统一的API和集成解决方案。 8. **Test Coverage Reports**: 压缩包可能还包括了测试覆盖率报告的...

    安卓按键模拟点击相关-android系统模拟点击事件发送QQ消息.rar

    通过深入理解和应用这些技术,我们可以为自动化测试、辅助工具开发或者特定需求的解决方案打下基础。不过,实际运行和调试过程中可能需要根据日志和错误信息自行调整代码,以确保其在不同设备和版本上都能正常工作。

    Android-JsDroidCmd

    总之,Android-JsDroidCmd是一个强大且灵活的自动化测试框架,它结合了uiautomator的稳定性和Rhino的脚本能力,为安卓开发者和测试工程师提供了一套高效的自动化解决方案。通过熟练掌握这一工具,可以大大提高测试...

    python+appium+Android 自动化测试框架

    Python结合Appium与Android自动化测试框架的构建是一个高效且强大的测试解决方案,尤其在移动应用测试领域。本框架的核心是利用Python作为编程语言,Appium作为跨平台的自动化测试工具,以及Android SDK为运行环境,...

    (安卓平台上的JavaScript自动化工具).zip

    总之,安卓平台上的JavaScript自动化工具利用UiAutomator框架,结合JavaScript的易用性和灵活性,为开发者提供了无root权限的自动化测试解决方案。通过学习和掌握这些工具,可以提升测试效率,保证应用的质量和稳定...

    Appium-windows-1.15.1.zip

    Appium 是一个强大的自动化测试工具,专为原生、混合以及移动Web应用程序设计。它的核心功能在于使用WebDriver协议...无论是针对原生应用还是混合应用,Appium都能提供稳定可靠的测试解决方案,确保应用的质量和性能。

    自动化测试全套工具之二_Appium_1_4_16_1 (2).zip

    Appium支持iOS和Android两大操作系统,为移动应用的测试提供了一站式的解决方案。Appium 1.4.16.1是其早期的一个稳定版本,虽然现在已经有更新的版本,但这个版本仍然被许多项目所采用。 **环境配置** 在使用...

    python-安卓手机自动测试

    它的设计目标是提供一种高效、灵活的安卓自动化测试解决方案,适用于应用程序的回归测试、性能测试以及功能验证。 描述中提到的"autotest"可能是用户自定义的一个自动化测试实现,它可能基于uiautomator2或其他类似...

Global site tag (gtag.js) - Google Analytics