Robotium之无法识别控件点击

Rachel ·
更新时间:2024-09-21
· 817 次阅读

  手机测试比较常用的是点击,不管事按钮,是图片,是输入框,等等等等都需要点击;   1、正常点击:solo.clickOnText("^登录?")   正常输入:solo.waitForText("^账号?", 1, 10000);   solo.enterText(0, "00195852");   solo.enterText(1, "password");   2、登录按钮时图片,无法用上面方法怎么办?   clickOnScreen(float x, float y)   x,y得你手机打开开发者选项中的【指针位置】手指放上去会显示   那如果是固定位置,比如1/2处。右下角。左上角;那可以获取手机屏幕了代码如下:   //1、导入包   import android.util.DisplayMetrics;   //2、获取手机屏幕分辨率的类   private DisplayMetrics dm ;   //3、初始化参数   dm = new DisplayMetrics();   solo.getCurrentActivity().getWindowManager().getDefaultDisplay().getMetrics(dm) ;   //4、获得手机的宽带和高度像素单位为px   String str = "手机屏幕分辨率为:" + dm.widthPixels+" * "+dm.heightPixels;   点击时候如果是中间clickOnScreen(dm.widthPixels/2,dm.heightPixels/2)   3、通过ID来点击代码实现如下: private int clickCtrlById(String s, int t){ int ctrl; View v; if( s == ""){ return -1; } ctrl = solo.getCurrentActivity().getResources().getIdentifier(s,"id",solo.getCurrentActivity().getPackageName()); v = solo.getView(ctrl); solo.clickOnView(v); solo.sleep(t); return 0; } private int enterTextById(String id, String s, int t ){ int ctrl; EditText v; if( s == ""){ return -1; } ctrl = solo.getCurrentActivity().getResources().getIdentifier(id,"id",solo.getCurrentActivity().getPackageName()); v = (EditText) solo.getView(ctrl); solo.enterText(v, s) ; solo.sleep(t); return 0; }   其调用方法为:   clickCtrlById("ID", 10000) ;   enterTextById("ID","要输入的内容",10000)   如果碰到还不能点击的情况可以再反映给我,我会帮你想办法   以上如果非要用id点击还可以使用以下方法获取ID但是意义不大,为什么呢?因为知道的string直接使用第一种办法点击完事了,但是技术还是分享以下,也有可取之处   Activity act=solo.getCurrentActivity();//获取Activity   int id=act.getResources().getIdentifier("^登录?", "id", act.getPackageName());//通过String的id获取int的id   View view=act.findViewById(id);//获取View   solo.clickOnView(view);//点击   这段代码虽然没啥用,但是如果你需要找到对应的ID,然后用用id做什么事情还是可取的;   以上是按钮点击的分享内容;



robotium

需要 登录 后方可回复, 如果你还没有账号请 注册新账号