Robotium 帮忙看下这个按钮怎么点击不到

Mr Wang · February 27, 2015 · Last by sky.qian replied at October 25, 2016 · 1466 hits

本人实在不知道如何解决了 求各位帮忙看看

共收到 18 条回复 时间 点赞

个人建议:
1.把坐标打出来,看看控件到底有没有取到。
2.短的 CLICK 不行,你换 LONGCLICK 试试?

#1 楼 @yangchengtest
1、这个我开了 开发者选项中的模拟操作,的确看到了点击了此 button,但是没有菜单栏弹出来
2、longclick 也不行 菜单栏还是没有弹出来

我没辙了 求大神们出现

你确定那个菜单栏是点击这个控件就会出现的?

#2 楼 @young 试试直接发送菜单栏命令:adb shell input keyevent KEYCODE_MENU

#3 楼 @chenhengjie123 这必须肯定啊, 和开发确认了

#3 楼 @chenhengjie123 这个菜单栏 是 这个 app 的 菜单栏 不是安卓系统的 菜单栏

也许是你代码问题,你光发这个图看不出什么问题

#7 楼 @nickbeibei 我点的是这个按钮的 resource id 看轨迹 的确点击上去了,但是没有弹出对应的界面

以下是个人的理解供参考:
一般来说开发对 BUTTON 监听,就是 onClickListener 和 onLongClickListener,你可以去和开发确认一下监听方式。
无论是长按短按,如果你手工测试正常,自动化没道理不跳转啊。所以个人怀疑还是你 BUTTON 的获取是不是有了问题?ID+INDEX 的获取方式?你确认按键后的开发者选项获取到的按键坐标与工具看到的 BUTTON 坐标一致么?(我个人还是喜欢在代码里面取控件坐标打 LOG...)
如果还不行,建议你还是去找开发慢慢谈吧。~~~

#9 楼 @yangchengtest 安卓自动化 比 web 自动化还是难很多啊 好多不懂 的 慢慢学吧 多谢了

#9 楼 @yangchengtest 我给你打下我的那块代码 你看看

solo.clickOnView(solo.getView("rbtn_menu_home"));
// Click on FrameLayout
solo.clickOnView(solo.getView("flyt_task_menu")); //主要是这个是点击那个按钮的 
// Click on Empty Text View
solo.clickOnView(solo.getView("exit"));

@young 个人觉得问题有点多,供参考:
1.先了解一下 ANDROID 的控件 ID 是什么,然后仔细看一下 SOLO 的文档吧。貌似你填的就不是 ID 吧。。。。
2.ROBOTIUM 的执行速度很快,中间不加延时,可能什么中间过程都看不到。
3.按键后 ACTIVITY 可能会有跳转,每次跳转后,控件 ID 什么的要重新用 UIAUTOMATOR 取。

贴下这个按钮点击后的展示效果吧

Activity act=solo.getCurrentActivity();
int id=act.getResources().getIdentifier("flyt_task_menu", "id", act.getPackageName());
View view=act.findViewById(id); 
solo.clickOnView(view);

可以这样试试

#14 楼 @sl_wang 我想知道这样和 solo.clickOnView(solo.getView(“id”);这样有什么不同呢?都是通过 id 找到那个 view 并点击,不知道有什么区别

今天遇到了类似的问题,被测 app 版本迭代后,一个 ImageView id 为 user_message 没变,但自动化代码执行时突然就点击无任何效果,试了老版本 app 执行没问题,真是百思不得其解,求大神解救,分析下可能原因

很明显 ID 写错了 flyt_task_menu 你的截图不是 btn_myinfo_menu 这个嘛

id 有重复的,导致定位的地方不对,可以打印下定位到的控件的位置;或者上一个操作没加个 sleep,连续操作过快也会点不到

需要 Sign In 后方可回复, 如果你还没有账号请点击这里 Sign Up