UI测试常用技巧
作者:网络转载 发布时间:[ 2014/4/30 14:08:17 ] 推荐标签:UI 测试
如何在当前界面中查找第一个ListView中的带有文本属性为Apps的子控件。
UiObjectappItem=newUiObject(newUiSelector()
.className("android.widget.ListView").instance(1)
.childSelector(newUiSelector().text("Apps")));
如何查找当前显示界面中的取消按钮和确认按钮:
UiObjectcancelButton=newUiObject(newUiSelector().text("Cancel"));
UiObjectokButton=newUiObject(newUiSelector().text("OK"));
查找到的UiObject实例可以在其他测试代码中重用。需要注意的是:每次使用UiObject做操作的时候uiautomator都会在当前屏幕重新查找该控件。
如下代码uiautomator工具在当前界面查找文本内容为“OK”的控件。如果存在并且可用则模拟用户点击该控件。
if(okButton.exists()&&okButton.isEnabled())
{
okButton.click();
}
还可以限制仅仅查找特定类型的控件。例如如下代码只查找文本为“Cancel”和“OK”的android.widget.Button类型控件。
UiObjectcancelButton=newUiObject(newUiSelector().text("Cancel")
.className("android.widget.Button"));
UiObjectokButton=newUiObject(newUiSelector().text("OK")
.className("android.widget.Button"));
UiCollection
代表控件的集合。获取UiCollection的方式和UiObject一样,通过UiSelector查找。UiCollection对应Android系统中的ViewGroup以及子控件。
如下代码演示如何通过UiSelector来获取包含视频集合的UiCollection。
UiCollectionvideos=newUiCollection(newUiSelector()
.className("android.widget.FrameLayout"));
如果每个视频是放到LinearLayout中的,则可以通过如下方式获取视频的数目:
intcount=videos.getChildCount(newUiSelector()
.className("android.widget.LinearLayout"));
如果需要查找标签为“CuteBabyLaughing”的视频,并点击。则可以通过如下方式:
UiObjectvideo=videos.getChildByText(newUiSelector()
.className("android.widget.LinearLayout"),"CuteBabyLaughing");
video.click();
同样还可以模拟其他用户操作。例如,模拟选择视频的操作如下:
UiObjectcheckBox=video.getChild(newUiSelector()
.className("android.widget.Checkbox"));
if(!checkBox.isSelected())checkbox.click();
UiScrollable
代表可滚动的控件。可以用UiScrollable来模拟水平或者垂直滚动的UI元素。如果需要操作的元素在屏幕外需要滚动屏幕才能看到的情况下需要使用UiScrollable。
例如,下面的代码显示了如何模拟滚动到“Settings”菜单并点击“Abouttablet”菜单的操作。
UiScrollablesettingsItem=newUiScrollable(newUiSelector()
.className("android.widget.ListView"));
UiObjectabout=settingsItem.getChildByText(newUiSelector()
.className("android.widget.LinearLayout"),"Abouttablet");
about.click()
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11