我正在使用机器人。今天我遇到了一个小问题。单击按钮后,应用程序将转到下一个活动。我需要等待出现一些按钮。
View am = solo.getView(R.id.btn_login);
solo.waitForCondition(am.isShown(), 5000);
此代码不起作用。
如果am被识别为
Button am = solo.getButton(R.id.btn_login);
请帮我弄清楚!
你必须实现Condition
接口:
solo.waitForCondition(new Condition() {
@Override
public boolean isSatisfied() {
return am.isShown();
}
}, 5000);
你isSatisfied()
可以自由地测试你需要的任何东西:)
Android 中的 isShown() 经常被误解。当视图及其所有祖先可见时,它返回 true。
我想你可以试试:
solo.waitForView(...)
在 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);