溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

在Robotium中使用ID

發(fā)布時間:2020-09-10 11:38:04 來源:網(wǎng)絡 閱讀:1700 作者:逍遙云翳 欄目:開發(fā)技術

 在Robotium的API中不提供使用ID的方式。

如果我們想在Robotium中使用ID就需要自己通過ID來找到控件的實例,然后通過Robotium的API對實例進行操作來達到目的。
當然了。如果有童鞋有興趣也可以自己將這個封裝起來以便使用。
在說方法之前,我不得不先說說ID的幾種形式:
1.字符串形式。例如id/btn_Example我們在源碼的布局里面寫的,HierarchyView中看見的,都是這種。
2.數(shù)字形式。例如0x7f070012,我們可以打開R.java。里面就體現(xiàn)了String形式和int形式的對應關系。
在白盒測試(有源碼)中,我們可以直接使用R.id的形式來調(diào)用:

  1. View view=solo.getView(R.id.btn_Example);//獲取View 
  2. solo.clickOnView(view);//點擊 


但是在黑盒測試(只有APK)中,R.id不可見,那么我們該如何使用呢?

  1. Activity act=solo.getCurrentActivity();//獲取Activity 
  2. int id=act.getResources().getIdentifier("btn_Example""id", act.getPackageName());//通過String的id獲取int的id 
  3. View view=act.findViewById(id);//獲取View 
  4. solo.clickOnView(view);//點擊 


這里是我自己封裝的一個方法:

 

  1. private boolean clickById(String id) throws Exception{  
  2.         if(id==""){  
  3.             return false;  
  4.         }  
  5.         try{  
  6.             Activity act=solo.getCurrentActivity();//獲取當前Activity  
  7.             int id=act.getResources().getIdentifier(id, "id", solo.getCurrentActivity().getPackageName());//獲取id  
  8.             View view=solo.getView(id);//得到View  
  9.             solo.clickOnView(view);//點擊  
  10.         }catch(Exception ex){  
  11.             Log.e("Exception", ex.getMessage());  
  12.             throw ex;  
  13.         }  
  14.         return true;  
  15.     }  

 

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI