2014-07-11 4 views
0

페이스 북 연결에 Robotium 테스트를 사용하고 있습니다.Robotium은 Facebook 대화 상자에 OK 버튼을 클릭하지 않으려합니다.

/** 
* 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); 
} 

내 문제는 인증 페이스 북 대화 상자가 표시 될 때, Robotium는 "OK"버튼을 클릭하지 않는 것입니다 :

이 내 테스트입니다.

해결 방법?

내가 특정 "clickOn"방법을 사용하여 문제를 많이 했어

Facebook Dialog

+0

Robotium에서 다른 앱을 클릭 할 수 없습니다. 그 대화는 페이스 북 앱의 일부인가? 그렇다면 그것이 당신이 그것과 상호 작용할 수없는 이유입니다. –

+0

이 테스트는 유효성 검사이며 모든 테스트 단계에서 내 전화 뒤에 머물고 싶지 않습니다. 그래서 나는이 과정을 자동체 화하려고합니다. –

답변

2

타이. 클릭하려는 버튼이 아니며 대신

solo.clickOnText("OK") 

을 사용하여 지정하십시오.

또한 필수가 아닐지라도 테스트가 상당히 느려지므로 solo.sleep()을 사용하지 마십시오. solo.waitFor -methods를 사용하십시오. 예를 들어 waitForText("text"), waitForActivity(YourActivity.class) 등입니다. 이러한 메소드는 assert-statements에서 사용할 수있는 부울을 반환합니다.

사용 가능한 방법은 Solo Javadoc을 참조하십시오.

+0

다음을 사용하여 화면 채우기 경고 상자의 OK 버튼을 신뢰할 수있게 눌렀습니다. solo.clickOnButton ("OK"); 또는 : solo.clickOnText ("OK"); 하지만 이것은 특정 API 수준까지만 작동했지만 22 수준이라고 생각합니다. 상위 수준에서는 다음을 사용해야했습니다. solo.clickOnButton (2); 나는 stackoverflow에서 발견 된 다양한 제안을 시도했지만 아무런 효과가 없었다. 결국, 버튼의 텍스트를 "OK!"로 변경해야합니다. 그 후에는 "clickOnText"가 모든 API 레벨에서 작동했습니다. –