uiautomator中踩过的坑
2016-06-20 09:29
218 查看
String szItem = m_softwareItems.get(nIndex); UiObject item = softwareItems.getChildByText(new UiSelector().className("android.widget.LinearLayout"), szItem); if(item != null && item.exists()) 。。。这段代码在相应的项不存在的时候,会弹出异常,然后程序直接终止。但我们的逻辑是如果不存在就略过,流程还需要继续走下去。然后我尝试添加try 捕获异常,但还是不行,最后发现,捕获异常的同时,加个空指针判断,就能够避免程序退出了,最后的代码是这样:
UiObject item = null; try { String szItem = m_softwareItems.get(nIndex); item = softwareItems.getChildByText(new UiSelector().className("android.widget.LinearLayout"), szItem); } catch(UiObjectNotFoundException e) { } if(item != null && item.exists())
一定要判断是否为null。
测试类函数中一般都继承异常声明,但一定注意,如果发生异常,没有手动去捕获,程序会立即退出的。因此如果不希望程序退出的话,用try来捕获异常比较合适。
jar包中是可以识别手机上的中文字符的,网上有些博客说不能其实是错误的,通过设置工程-属性-资源-文本文件编码 为UTF-8就可以进行中文的识别,但是注意,我们从命令行看的时候,显示的是乱码,这个只是显示问题。
jar的执行函数是以test为开头命名的函数。如果内部的函数开头不是test(我之前写成了Test),jar是不会模拟点击的。如果有多个test开头的函数,则根据test后面字母的ASCII码的顺序依次执行。所以上述的两个函数,先执行testDemo1,再执行testDemo2.
代码中需要对某个txt文件进行读操作,于是写了如下代码:
FileReader fr = new FileReader(DIR + filename); BufferedReader bf = new BufferedReader(fr); String str = null; while ((str = bf.readLine()) != null)但是却提示错误,
uiautomator进程一般只有一个,比如一个jar中有两个测试类,启动其中一个,在它运行的过程中,如果另一个启动了,则前一个自动退出(windows下测试正常,盒子上会提示进程已被注册,必须手动杀死才行)。
对于ListView控件,其实是可以进行遍历的,用UiScrollable获取一个ListView控件的列表,然后getChildCount是返回当前视线内的元素个数,注意是当前视线,不在屏幕上的,不算在内,用getChildByInstance进行遍历,第二个参数指明是第几个元素,注意,这里也是当前视线。这样就会有个问题,只对当前视线进行遍历。我做过测试,发现当前视线也不是很准确,比如当前其实有10行,但遍历到6,7行就认为遍历完了。
屏幕模仿滑动的时候,使用的是swipe方法,从左到右和从右到左,比如getUiDevice().swipe(0, nheight / 2, nwidth , nheight / 2, 10); 但是这样发现有一些问题,就是向左滑的太快了,小米手机是这样,华为没有这种现象。于是就想了办法,不从边缘开始 getUiDevice().swipe(1, nheight / 2, nwidth - 1, nheight / 2, 10); 改成这样就正常了。
后来发现这样修改也不行。原来是presshome搞得鬼,有的手机点击就留在当前,有的会跳到日历那个桌面上。
华为智能桌面的问题,我的华为手机如果安装智能桌面后,程序中调用presshome就会直接呼出华为桌面,而另一台华为手机则不会,这导致不能在代码中使用presshome
相关文章推荐
- 手把手教你uiautomator_android自动化测试第一个示例
- Android自动化测试:获取当前前台应用的Activity名字
- Android UiAutomator 自动化测试 断言函数介绍
- Android 自动化测试UiAutomator 视频精讲
- Testing Support Library
- UiObject2 API的简单译文
- 一步一步来做Android UI自动化,UiAutomator实例
- UIAutomator如何添加第三方jar包
- android uiautomator学习(二)主要类的简单介绍 .
- uiautomator翻页寻找设置按钮
- Uiautomator小记
- UIAutomator在AndroidStudio中的使用
- android自动测试方法分析(monkeyrunner,robotium,uiautomator)
- 关于研究UIautomator操作手机执行case
- android uiautomator学习(一)创建工程
- UIAutomator通过中文文本查找控件
- android自动化测试6-UIAutomator黑盒测试2
- UiAutomator的使用过程
- Android uiautomator 使用入门官方教程
- UiAutomator获取webview里面ui元素的方法