java +UIAutomator 通过中文文本查找控件 报错问题
时间:2019-01-18
本文章向大家介绍java +UIAutomator 通过中文文本查找控件 报错问题,主要包括java +UIAutomator 通过中文文本查找控件 报错问题使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
<span style="font-family: SimSun; font-size: 14px; background-color: rgb(255, 255, 255);">在使用eclipse来编译java+uiautomator程序时,使用text属性来查找控件报错了,提示找不到控件UiOjbectNotFoundException</span>
百度搜索到的其他示例程序都是英文属性,难道uiautomator不支持中文text控件属性吗。再次把系统语言切换成英文后,再更改text name,运行居然可以了。
但这个UIAutomator是google弄的,不可能对unicode字符支持这么基础的东西都有问题啊,可怜网上UIAutomator与此相关的资源太少,几经艰辛才知道这个跟eclipse项目的Text file encoding选项有关系。原来问题还是出在自身上。
解决方法:把项目默认的Text file encoding从GBK改成UTF-8,重新打包运行
这次真的成功了。
附上实验代码:
import android.os.RemoteException;
import com.android.uiautomator.core.UiDevice;
import com.android.uiautomator.core.UiObject;
import com.android.uiautomator.core.UiObjectNotFoundException;
import com.android.uiautomator.core.UiSelector;
import com.android.uiautomator.testrunner.UiAutomatorTestCase;
public class MessageTestCase extends UiAutomatorTestCase{
public void testDemo() throws UiObjectNotFoundException,RemoteException{
UiDevice device=getUiDevice();
device.pressHome();
sleep(2000);
UiObject messageIcon=new UiObject(new UiSelector().text("信息"));
assertTrue(" messageIcon not found", messageIcon.exists());
messageIcon.click();
sleep(3000);
UiObject newMessage=new UiObject(new UiSelector().text("写短信"));
assertTrue(" newMessage not found", newMessage.exists());
newMessage.click();
sleep(1000);
UiObject addContact=new UiObject(new UiSelector().text("收件人"));
assertTrue(" addContact not found", addContact.exists());
addContact.click();
addContact.setText("10086");
UiObject editMessage=new UiObject(new UiSelector().text("输入文本信息"));
assertTrue(" editMessage not found", editMessage.exists());
editMessage.click();
editMessage.setText("11");
UiObject sendButton=new UiObject(new UiSelector().description("发送"));
assertTrue(" sendButton not found", sendButton.exists());
sendButton.click();
UiObject sendCard=new UiObject(new UiSelector().text("中国移动"));
sendCard.click();
}
}
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- Docker 入门到实战教程(十三)Docker Compose
- 解决IDEA2020.1版本的lombok插件问题
- 工具系列 | 视频监控RTSP转HLS解决方案
- Redis系列 |(一)六种基本数据结构
- 工具系列 | Jenkins 构建伟大,无所不能
- 工具系列 | H5自定义视频播放器实现
- 前端系列 |原生JS和jQuery循环遍历函数
- 工具系列 | H5如何实现人脸识别
- 形式化分析工具(六):HLPSL Tutorial(Example3)
- CODING DevOps + Nginx-ingress 实现自动化灰度发布
- TF入门04-TF实现Word2Vec
- TF入门03-实现线性回归&逻辑回归
- TF入门02-TensorFlow Ops
- 前端|利用Verify插件实现前端图像验证码
- 3分钟短文 | PHP位运算和逻辑运算,一个符号写两遍这么简单?