Java安卓自动化获取控件,Android自动化追本溯源系列(2):在控件上执行操作
上回说到,在Android自动化测试时,通过反射机制,我们能获得页面的所有控件。来看一个简单的应用例子:ArrayList views = getAllViews();for(View view : views)Log.d("Views On Activity:", view.getClass().getName());}这样在LogCat里我们就可以打印出所有的View了:-27 22:24:5
上回说到,在Android自动化测试时,通过反射机制,我们能获得页面的所有控件。来看一个简单的应用例子:ArrayList views = getAllViews();
for(View view : views)
Log.d("Views On Activity:", view.getClass().getName());
}
这样在LogCat里我们就可以打印出所有的View了:-27 22:24:52.369: D/Views On Activity:(2123): android.widget.LinearLayout
-27 22:24:52.369: D/Views On Activity:(2123): com.android.internal.widget.ActionBarContainer
-27 22:24:52.369: D/Views On Activity:(2123): com.android.internal.widget.ActionBarView
-27 22:24:52.369: D/Views On Activity:(2123): android.widget.LinearLayout
-27 22:24:52.369: D/Views On Activity:(2123): android.widget.ImageView
-27 22:24:52.369: D/Views On Activity:(2123): android.widget.LinearLayout
-27 22:24:52.369: D/Views On Activity:(2123): android.widget.TextView
-27 22:24:52.369: D/Views On Activity:(2123): android.widget.TextView
-27 22:24:52.369: D/Views On Activity:(2123): com.android.internal.widget.ActionBarView$HomeView
-27 22:24:52.369: D/Views On Activity:(2123): android.widget.ImageView
-27 22:24:52.369: D/Views On Activity:(2123): android.widget.ImageView
-27 22:24:52.369: D/Views On Activity:(2123): com.android.internal.view.menu.ActionMenuView
-27 22:24:52.369: D/Views On Activity:(2123): com.android.internal.widget.ActionBarContextView
-27 22:24:52.369: D/Views On Activity:(2123): android.widget.FrameLayout
-27 22:24:52.369: D/Views On Activity:(2123): android.widget.RelativeLayout
-27 22:24:52.369: D/Views On Activity:(2123): android.widget.RelativeLayout
-27 22:24:52.369: D/Views On Activity:(2123): android.widget.TextView
-27 22:24:52.369: D/Views On Activity:(2123): android.widget.TextView
-27 22:24:52.369: D/Views On Activity:(2123): android.widget.ImageView
-27 22:24:52.369: D/Views On Activity:(2123): android.widget.ImageView
-27 22:24:52.369: D/Views On Activity:(2123): android.widget.RelativeLayout
-27 22:24:52.369: D/Views On Activity:(2123): android.widget.TextView
-27 22:24:52.369: D/Views On Activity:(2123): android.widget.TextView
-27 22:24:52.369: D/Views On Activity:(2123): android.widget.TextView
-27 22:24:52.369: D/Views On Activity:(2123): android.widget.TextView
-27 22:24:52.369: D/Views On Activity:(2123): android.widget.TextView
-27 22:24:52.369: D/Views On Activity:(2123): android.widget.Button
-27 22:24:52.369: D/Views On Activity:(2123): com.android.internal.policy.impl.PhoneWindow$DecorView
我们看到这里罗列了所有的控件,有Layout, TextView, Button 等等。而获得了这些控件,对我们有什么用呢?
Yes,有了这些控件,我们就可以执行相应的操作了!
比如:
1、有了Button,我们可以执行Click On Button操作
2、有了TextView,我们就可以得到页面的所有Text,去验证Message或者做Localization Testing
3、同样有了ImageView,我们可以执行Click操作,甚至可以得到页面显示的图片
4、.......
下面分享一些我们项目中用到的关于这些操作的典型片断:
● Click 操作public void clickOnView(int id)
{
View view = solo.getView(id);
if(view != null)
{
solo.clickOnView(view);
}
}
更多推荐
所有评论(0)