salomon1184

Results 16 comments of salomon1184

我看了一下源码,捕获进程外控件,你是通过和hierarchyviewer相同的方式,从dump的字符串里解析出来符合条件的控件。但是我尝试了一下用remote.clickviewbyid调用拍照功能,传递参数为"id/shutter_button" 也尝试了”shutter_button"两者都没有触发点击的动作(已经执行了cafe_start.sh),能不能请教一下为什么?难道我的调用方式不对?还有什么方式能够精确捕获进程外控件呢?

那就得要求系统编译时设置debug的属性为1啊,市面上所有的手机应该都是0吧。有没有其他办法能实现跨应用的精确捕获?可惜没办法把uiautomator的给移植进来。

嗯,看源码看到了,谢谢啊

希望大牛什么时候考虑基于uiautomator封装扩展一下,加上webview, 事件等待,以及低版本兼容等,那么android ui自动化测试就不会那么痛苦了

是啊,webview里包含的一些空间的获取之类的。又看了一下源码,发现点击控件的事件都是通过monkey发送的 private final static int USE_MONKEY = 1; private final static int EVENT_SENDER = USE_MONKEY; 没有通过instrumentation,那也就是说adb shell getprop ro.debuggable 不为1应该也能点击吧,难道我理解错了?

adb -s emulator-5556 shell service call window 1 i32 4939, 可以通过这个命令把ViewServer打开。能不能和hirerachyviewer一样,在建立socket链接之前用这个把viewserver打开,这样那个remote.clickxxx就好使了吧。上边那个问题我明白了,不是click不行,是无法获得控件的property,无法确定坐标。

好多手机debug属性不为1,为什么hierarchyview也可以捕获控件?我看源码,他通过adb -s emulator-5556 shell service call window 1 i32 4939这个命令打开的viewserver, window 2 关闭, window 3 查看状态,我通过这个命令手动打开了,但是运行cafe.jar时还是提示没有打开,好奇怪。

我觉着吧,既然hierachyviewer可以在那些debug属性不为1的设备上捕获得到ui属性,那么cafe同样也可以,希望大牛想想办法解决一下吧。虽然接触Android ui自动化时间很短,谈不上认识多深,但真心觉得Cafe的想法很有创意,封装得很契合UI自动化本身特点,希望别留这个小遗憾

我这有一部htc one x,貌似被刷过机,但是debug属性显示为0, 用hierarchyviewer能得到各个控件属性,但不能调用cafe里remote.clickViewById的方法点击系统相机里的拍照按钮,查看logcat提示 view server is not open,尝试了小米1,系统为最新开发版3.5.10,用debug属性显示为1,hierarchyviewer能得到各个控件属性,仍然不能调用cafe里remote.clickViewById,情形原因如上(已经打开了cafe.start.sh(为了验证调用了remote.presskey调节了音量)一直找不到原因,站在cafe开发者的角度,能不能帮忙给想想到底原因是什么呢?如果需要截图和代码,回头发给你。

只要能打开viewserver这个cafe remote的方法就好使吧, 我不刷机,采用这种方法可以吗?http://blog.apkudo.com/tag/viewserver/