3

我正在使用机器人。今天我遇到了一个小问题。单击按钮后,应用程序将转到下一个活动。我需要等待出现一些按钮。

View am = solo.getView(R.id.btn_login);

solo.waitForCondition(am.isShown(), 5000);

此代码不起作用。

如果am被识别为

Button am = solo.getButton(R.id.btn_login);

请帮我弄清楚!

4

3 回答 3

6

你必须实现Condition接口:

solo.waitForCondition(new Condition() {
   @Override
   public boolean isSatisfied() {
       return am.isShown();
   }
}, 5000);

isSatisfied()可以自由地测试你需要的任何东西:)

于 2013-10-23T07:38:43.013 回答
0

Android 中的 isShown() 经常被误解。当视图及其所有祖先可见时,它返回 true。

我想你可以试试:

solo.waitForView(...)
于 2013-05-18T00:31:45.443 回答
0

在 Robotium 中,有不同的 waitForCondition。如:

solo.waitForView() //if a certain view is shown after the load screen is done.
solo.waitForDialogToClose() //waits for the dialog to close
solo.waitForActivity() // if there is a activity change
solo.waitForText() //if a certain text appears after the loading is done

在您的情况下,由于您知道等待项目的 id,您可以尝试:

solo.waitForView(R.id.btn_login, 5000);
于 2013-09-25T04:56:52.753 回答