Android自動化測試—操作對話框(Dialog)上面的控件

發表于:2013-04-28來源:Robotium作者:hao.shen點擊數: 標簽:Android
Robotium框架提供了獲取、操作控件的API,如下圖:

  Robotium框架提供了獲取、操作控件的API,如下圖:

20130403144739

  對于有id或者String的控件可以通過Robotium直接找到,但是對于彈出的Dialog上面的控件單純的利用Robotium的API是行不通的,見下圖場景:

device-2013-04-03-150801

  對于上圖中彈出的Dialog中僅僅對Set和Cancel按鈕操作是可以的,但是要是操作+ – 按鈕或者需要拿到EditText控件就需要費點心思了。

  思路:主要是在彈出Dialog后通過Robotium的solo.getCurrentViews()方法得到Dialog上面的所有控件然后進行相關條件篩選。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
/**
	 * 獲得dialog上面的指定類型和位置的控件,在dialog彈出時調用
	 * @param solo
	 * @param viewType View類型
	 * @param index view位置
	 * @return 返回dialog上面的指定類型和位置的控,不存在則返回null
	 */
	public static View getViewFromDialogByIndex(Solo solo, Class viewType , int index){
    	ArrayList dialogViews = solo.getCurrentViews();
    	ArrayList typeViews = new ArrayList();
    	for(View currentTypeView : dialogViews){
    		if(viewType.isInstance(currentTypeView)){
    			typeViews.add(currentTypeView);
    		}
    	}
    	if(dialogViews.size()>0){
    		return typeViews.get(index);
    	}else {
    		return null;
		}
	}

原文轉自:http://www.robotium.cn/archives/346

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97