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 Unicode Input Helper使您能够使用 Android 输入任何 Unicode(包括非 ASCII)字符。 Uiautomator 有 API 来设置可编辑字段中的文本。 如果文本仅包含 ASCII 字符,但不能输入任何非 ASCII 字符(例如...
UIAutomator2作为UIAutomator的升级版,不仅支持更多的Android事件操作,还特别增加了对中文输入的支持,进一步提升了测试的实用性。使用UIAutomator2时,可以配合uiautomatorviewer工具,这个工具位于SDK的tools...
通过深入学习Uiautomator的源码,开发者不仅可以提升测试技能,还能了解到Android系统的UI架构和事件处理机制,对于开发高效稳定的自动化测试解决方案具有重要意义。在实际工作中,结合源码理解,我们可以更好地定制...
UIAutomator是Google推出的一款用于Android自动化测试的框架,它主要针对设备上的UI组件进行操作和断言,为开发者提供了一种高效、可靠的UI自动化测试解决方案。本篇文章将深入探讨UIAutomator的源码,揭示其内部...
通过深入研究源码,开发者不仅可以提高测试效率,还可以提升对Android系统和应用交互的理解,为更复杂的测试场景提供解决方案。在实际项目中,结合源码学习和实践,可以进一步提升自动化测试的质量和覆盖范围。
`uiautomator2`为Android自动化测试提供了一个强大而灵活的解决方案,特别适合进行功能测试和回归测试。通过学习和实践,开发者可以快速掌握其使用技巧,提升测试覆盖率,确保应用的质量。在本压缩包`uiauto_test`中...
在实际应用中,UIAutomator通常与JUnit、 Espresso等其他测试框架结合使用,形成完整的测试解决方案。例如,JUnit用于编写业务逻辑的单元测试,而UIAutomator负责UI层的集成测试。 最后,要充分利用UIAutomator,...
总之,uiautomator2作为Python库的一员,为Android自动化测试提供了高效且便捷的解决方案。无论你是测试工程师还是开发者,都能从中受益,提高测试的质量和效率。通过不断学习和实践,你将能够更好地驾驭这个强大的...
UIAutomator提供了一个高效、可靠的UI测试解决方案,而Instrumentation则让你能够从底层深入测试应用的各个方面。通过实际操作,你将能够编写出稳定且全面的自动化测试,从而提高应用的质量和用户体验。在实践中不断...
总之,Python测试框架结合`requests`和`uiautomator2`,为Android应用的自动化测试提供了高效、灵活的解决方案。通过学习和掌握这些工具,开发者能够快速定位和修复问题,提升软件产品的质量和用户体验。
uiautomator2是Android系统提供的一种UI自动化测试框架,它允许开发者编写自动化脚本来模拟用户与应用程序的交互,如点击、滑动、输入文本等操作。本资料主要探讨如何利用uiautomator2来实现这一目标。 1. **...
7. **AndroidX Test Library**: AndroidX测试库是一套全面的测试工具,包含Espresso、JUnit、Mockito等组件,提供了统一的API和集成解决方案。 8. **Test Coverage Reports**: 压缩包可能还包括了测试覆盖率报告的...
通过深入理解和应用这些技术,我们可以为自动化测试、辅助工具开发或者特定需求的解决方案打下基础。不过,实际运行和调试过程中可能需要根据日志和错误信息自行调整代码,以确保其在不同设备和版本上都能正常工作。
总之,Android-JsDroidCmd是一个强大且灵活的自动化测试框架,它结合了uiautomator的稳定性和Rhino的脚本能力,为安卓开发者和测试工程师提供了一套高效的自动化解决方案。通过熟练掌握这一工具,可以大大提高测试...
Python结合Appium与Android自动化测试框架的构建是一个高效且强大的测试解决方案,尤其在移动应用测试领域。本框架的核心是利用Python作为编程语言,Appium作为跨平台的自动化测试工具,以及Android SDK为运行环境,...
总之,安卓平台上的JavaScript自动化工具利用UiAutomator框架,结合JavaScript的易用性和灵活性,为开发者提供了无root权限的自动化测试解决方案。通过学习和掌握这些工具,可以提升测试效率,保证应用的质量和稳定...
Appium 是一个强大的自动化测试工具,专为原生、混合以及移动Web应用程序设计。它的核心功能在于使用WebDriver协议...无论是针对原生应用还是混合应用,Appium都能提供稳定可靠的测试解决方案,确保应用的质量和性能。
Appium支持iOS和Android两大操作系统,为移动应用的测试提供了一站式的解决方案。Appium 1.4.16.1是其早期的一个稳定版本,虽然现在已经有更新的版本,但这个版本仍然被许多项目所采用。 **环境配置** 在使用...
它的设计目标是提供一种高效、灵活的安卓自动化测试解决方案,适用于应用程序的回归测试、性能测试以及功能验证。 描述中提到的"autotest"可能是用户自定义的一个自动化测试实现,它可能基于uiautomator2或其他类似...