我正在使用Robtium 4.1
当我在模拟器上运行我的Robotium测试时,它是可见的,我可以点击一个按钮使用:
final Button startButton = (Button) solo.getCurrentActivity().findViewById(
com.coop.R.id.btn_start);
solo.clickOnView(startQuizButton);
在使用-no-window选项启动的不可见模拟器中做同样的事情,我会得到异常:
[INFO] android.device参数设置为模拟器[INFO] emulator-5554_AVD_for_Galaxy_Tab_10_1_unknown_sdk:在com.company.abc.app.test中运行仪表测试[INFO] emulator-5554_AVD_for_Galaxy_Tab_10_1_unknown_sdk: Run started: com.company.abc.app.test, 1次测试:[INFO] emulator-5554_AVD_for_Galaxy_Tab_10_1_unknown_sdk: FAILURE:com.company.abc.app.SingleChoiceTest#testappType[INFO] emulator-5554_AVD_for_Galaxy_Tab_10_1_unknown_sdk: junit.framework.AssertionFailedError: Click can not be complete !com.jayway.android.robotium.solo.Clicker.clickOnScreen (Clicker.java: 85)com.jayway.android.robotium.solo.Clicker.clickOnScreen (Clicker.java: 157)com.jayway.android.robotium.solo.Clicker.clickOnScreen (Clicker.java: 131)com.jayway.android.robotium.solo.Solo.clickOnView (Solo.java: 879)com.company.abc.app.BaseappModuleRobotiumTest.checkIntroductionActivity (BaseappModuleRobotiumTest.java: 155)com.company.abc.app.BaseappModuleRobotiumTest.testappType (BaseappModuleRobotiumTest.java: 174)
我读了"为什么文本和按钮点击会出错?"然后再检查一遍,还是同样的问题:/
我查看了Grepcode的源代码,它捕获了一个SecurityException。为什么在-no-window模式下会抛出这个问题?
有什么帮助吗?
我打赌模拟器是在锁定屏幕的情况下运行的。robotium中的每次点击最终都以点击屏幕的方式执行(更准确地说,执行从类MotionEvent获得的方法)。如果屏幕上有其他进程的应用程序,则不能点击屏幕。
你必须找到方法,如何在测试执行之前解锁屏幕。
也许这能帮到你。你也可以在模拟器上运行一些vnc服务器,连接并检查,如果这真的与锁屏有关,尽管如此,我99%肯定这就是问题所在。