Robotium solo waitForCondition

时间:2013-05-17 14:51:50

标签: android robotium

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

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

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

此代码不起作用。

如果 am 被识别为

,它也无效
Button am = solo.getButton(R.id.btn_login);

请帮帮我解决一下!

3 个答案:

答案 0 :(得分:6)

您必须实现Condition界面:

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

isSatisfied()中你可以随意测试你需要的东西:)

答案 1 :(得分:0)

Android中的

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

我想你可以试试:

solo.waitForView(...)

答案 2 :(得分: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);