已知控件的id,在Robotium中如何模拟按键


http://blog.sina.com.cn/s/blog_6abda9bc01015zoc.html


1. 根据button上面的文字。这个很简单,直接solo.clickOnButton("Multiply");即可。

2. 根据控件的坐标。hierarchyviewer是可以查看每个点的坐标的。但是使用起来不是很直观,尤其是对不同分辨率屏幕的手机时,使用起来可能还存在兼容性问题。

 

如果控件上没有文字,clickOnButton就用不了,例如很多应用用图片作为button的说明,clickOnButton就不奏效。用坐标又很麻烦不直观。可否用控件的id呢?

怎么用id,我也纠缠这个问题好几天,网上中文资料搜不到,搜英文,英文搜不到换关键字搜,始终找不到一个比较完整的使用说明。我只好自己一个个命令的试,搞了2天总算找到一个方法,这个方法对于java高手可能不值一提,但对我从未用过java的人来说,确实费了不少周折。

我的方法如下,先获取到控件的view

solo.getCurrentActivity().getResources().getIdentifier

然后再用solo.clickOnView即可。

 

我在使用的时候,简单的封装了下,封装函数如下:

 
Android及Robotium学习总结【环境变量,真机调试及根据id模拟按键】

private int clickCtrlById(String s, int t ){
     intctrl;
     View v;

     if( s == ""){
          return -1;
     }
     ctrl = solo.getCurrentActivity().getResources().getIdentifier(s,"id",TARGET_PACKAGE_ID);
    
     v = solo.getView(ctrl);
     solo.clickOnView(v);
     solo.sleep(t);        
     return 0;
}


    

例如已知某个控件的id(字符串格式)为"btn_dialpad_5",调用方法如下:

clickCtrlById("btn_dialpad_5",400);


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值