1

我正在使用 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 中运行检测测试:开始运行: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:点击无法完成!在 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。

我读了“为什么文本和按钮点击会出错?” 再次检查,对我来说仍然是同样的问题:/

我查看了Grepcode 的源代码,它捕获了一个 SecurityException。为什么只是在 -no-window 模式下会被抛出?

对此有什么帮助吗?

此致

4

1 回答 1

0

我敢打赌,模拟器是在锁定屏幕的情况下运行的。在robotium 中的每次点击最终都会在点击屏幕时执行(更准确地说,执行从类MotionEvent 获取的方法)。如果屏幕上有来自其他进程的应用程序,则无法单击屏幕。

您必须找到方法,如何在测试执行之前解锁屏幕。

也许可以帮助你。您也可以在该模拟器上运行一些 vnc 服务器,连接并检查,如果这真的与锁定屏幕有关,但我 99% 确定这是问题所在。

于 2013-05-06T19:22:47.073 回答