UiAutomator 中文输入实现

UiAutomator不支持中文输入。

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

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

简单说一说整个过程,

最后生成脚本是这样的:

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值