我正在使用Robotium测试进行Facebook连接并接受facebook授权。
这是我的测试:
/**
* Test used to deconnect user
*/
public void testDeconnexion() {
// revoque publish permissions on facebook
FacebookManager.RevoqueAllPermissions(this.getActivity());
// wait for authorization deleted
solo.waitForLogMessage(this.getActivity().getResources().getString(R.string.log_facebook_revoque_publish_action), 5000);
// disconnect
solo.clickOnMenuItem(this.getActivity().getString(R.string.menu_item_logout));
// give it time to change activity
solo.sleep(1000);
// click on log out button
solo.clickOnButton("Log out");
// give it time to change activity
solo.sleep(1000);
// click on log out button
solo.clickOnButton("Log out");
// give it time to change activity
solo.sleep(1000);
// log in
solo.clickOnButton("Log in with Facebook");
// give it time for to see popup confirm
solo.sleep(1000);
// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
// !!!!!!! My Screenshot here !!!!!!!!!!!
// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
//click on ok button
solo.clickOnButton("OK"); // <-- Doesn't Work...
solo.sleep(5000);
}
我的问题是当显示带有授权的Facebook对话框时,Robotium不想点击“确定”按钮。
如何解决这个问题?
泰
答案 0 :(得分:2)
我在使用特定的&#34; clickOn&#34;时遇到了很多麻烦。方法。尽量不要使用
指定它是您要点击的按钮solo.clickOnText("OK")
代替。
另外,请避免使用solo.sleep()
,因为即使不需要,也会显着降低测试速度。利用solo.waitFor
- 方法。例如waitForText("text")
,waitForActivity(YourActivity.class)
等。这些方法返回一个可以在assert-statements中使用的布尔值。
有关可用方法,请参阅Solo Javadoc。