现在的位置: 首页 > 综合 > 正文

Athrun_学习笔记

2013年03月29日 ⁄ 综合 ⁄ 共 2647字 ⁄ 字号 评论关闭

 工具是固定的,人是变通的,若是感觉athrun框架有的功能实现效果不好,可以多想想是否可以用其它方法来实现呢?

1. 滑动引导图
SlideableElement sli = findElementById("my_slider",SlideableElement.class);
for (int i = 0; i<5; i++) {
sli.slide(ViewOperation.Direction.LEFT);
}
2. 当前截屏
captureScreenShot()

3. 查找元素
ViewGroupElement include = findElementById("include_checkbox", ViewGroupElement.class);
AbsListViewElement listView = findElementByIndex(0, AbsListView.class, AbsListViewElement.class);
TextViewElement findElementByText(String text)

4.获取当前activity,格式为:"org.athrun.android.app.TabOneActivity"
getCurrentActivityName();

关闭当前activity:

closeCurrentActivity(getCurrentActivityName());

5.获取设备。然后就可以操作设备,如下:
getDevice().pressMenu();//按下某个键
getDevice().setScreenOrientation(android.content.pm.ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);//设置屏幕方向
assertEquals("landscape", getDevice().getScreenOrientation());//获取屏幕方向return landscape or portrait
assertEquals(true, getDevice().isEmulator());//判断是否为模拟器
示例1: 
findElementByText("ListView").doClick();//通过文本找到一个元素,并点击

findElementById("id_name").doClick;// 通过控件id找到一个元素,并点击
AbsListViewElement listView = findElementById("my_listview",AbsListViewElement.class);//通过id找到一个listview
listView.scrollToNextScreen();//滚动这个listview到下一屏
ViewElement tmtsView = listView.getChildByIndex(35, ViewElement.class);//通过index找到第36个元素
tmtsView.doLongClick();//长按这个元素
findElementByText("Item One").doClick();//通过字本找到一个元素,并点击
assertEquals(true, waitForText("1 pressed!", 2000));//判断在2000毫秒内是否在当前页内显示出“1 pressed!”的文本

6. scrollTo()和 scrollBy() 

scrollTo()和scrollBy()都是View的public成员函数,使用这两个函数可以达到同样的目的,只是使用方式不同。 
public void scrollBy (int x, int y),将View的Content偏移(x,y)。x控制左右方向的偏移,y控制上下方向的偏移。例如当x>0,y=0时,向左移动x像素,当x<0,y=0时,向右移动x像素,而View的大小和位置不发生改变。如果Content超出了View的范围,则超出的部分会被挡住。 
public void scrollTo (int x, int y),将View的Content的位置移动到(x,y),而View的大小和位置不发生改变。如果Content超出了View的范围,则超出的部分会被挡住

例如:

scrollTo(050);//手指向上,内容向下滚动到50

scrollBy(0, -10);
//向下滚动

scrollBy(010);
//向上滚动

7.滑动引导图

SlideableElement sli = findElementById("my_slider1",  SlideableElement.class);   
        for (int i = 0; i < 3; i++) {  
            sli.slide(ViewOperation.Direction.LEFT); 
            getDevice().waitMoment(5); }  

8.调用drag()方法
private static final Instrumentation inst = null;
private  ViewOperation vo,vo1;

       vo1=vo.getInstance(inst);
       vo1.drag(470, 20, 200, 200, 20);

9.获取屏幕的宽度与高度

 int width=getDevice().getScreenWidth();
 int hight=getDevice().getScreenHeight();

10.得到 id在 R.java中的 id号

findElementById("iv_slide").getId();

11.实现对分支的覆盖

String s1=getCurrentActivityName();

System.out.println("s1 is "+s1);
   if(s1.equals("com.taobao.activities.SplashActivity")){
    getDevice().waitMoment(5);
   }
   else{
   
    while(i<4){
           vo1.drag(width-10, 10, 100, 100, 10);
       getDevice().waitMoment(5);
       i++;
    }
   vo1.clickOnScreen(100, 100);
   getDevice().waitMoment(5);   

   }

抱歉!评论已关闭.