2013-08-05 46 views
0

我是Robotium的新手,直到那时,我才通过直接编写公共网站的测试案例学会了很多东西,并从stackoverflow中的答案中挑出了几个问题。现在,我似乎在这个(可能)微不足道的问题上碰壁了。如何导航到android模拟器使用robotium的设置?

我想使用某种'robotium-solo'方法导航到'模拟器'的'应用程序'菜单内的'设置'图标。

这是我的失败尝试:

solo.sendKey(KeyEvent.KEYCODE_HOME); 
//solo.clickOnImageButton(2); // no success! 
//solo.clickOnActionBarItem(2); // no success! 
solo.clickOnText("Settings"); 
solo.clickOnText("Music"); 

我检查是否有KEYCODE_var的主屏幕“应用程序”图标,但无法找到一个。

有一个在DDMS没有有用的日志信息点击/拍了拍当button.s

请指导我,我的方法是什么好帮我一个答案找出开始活动。谢谢。

+0

你有应用程序的源代码或你是否使用'apk'文件自动化? –

+0

嗨Keerthana,是的,我只用一个apk自动执行。谢谢。 – sabie

回答

0

您可以用getCurrentViews()查询,并在点击菜单按钮之前以及点击菜单按钮之后显示view的列表。通过比较它们,您可以看到显示的新视图(即设置按钮)。

得到视图后,你可以用solo.clickOnView(ViewNameObtained); 这将解决你的问题,肯定。

+0

它没有工作,因为我没有打印在系统控制台上。 – sabie

+0

这里是我的代码:'公共无效testClearAppData(){solo.sendKey(KeyEvent.KEYCODE_HOME); //solo.clickOnImageButton(2); //solo.clickOnActionBarItem(2); //solo.clickOnView(); ArrayList views = solo.getCurrentViews();对于(View i:views){ {System.out.println(i.toString()); } }' – sabie

0

据我所知,使用robotium无法导航到设置。即使你能够去那里,你也不能执行任何其他操作,因为设置不是你的应用程序的端口。 Android Instrumentation只允许在一个包内执行动作,而robotium只是包装的一部分,所以它不能在应用程序之外单击。

您可以使用UI Automator。

+0

UIAutomator看起来很有前途,这意味着我无法在我的robotium测试用例中组合/使用它们。看起来,如果我想在我的robotium测试用例中使用这个UIAutomator功能,似乎很难,因为我不能继承'ActivityInstrumentationTestCase2'和'UIAutomatorTestCase'来创建我自己的测试用例类。任何进一步的指导可能会有帮助 – sabie