2013-04-13 5 views
7

Robotium에서 자동화 된 테스트를 실행하려고합니다. 그러나 내 테스트는 오류로 인해 실패Robotium에서 Action Bar Menu Items를 클릭하십시오.

solo.sendKey(Solo.MENU); 
solo.clickOnView(solo.getView(R.id.share)); //share is the id of the menu item 

:

public boolean onCreateOptionsMenu(com.actionbarsherlock.view.Menu menu) { 
    com.actionbarsherlock.view.MenuInflater inflater = getSupportMenuInflater(); 
     inflater.inflate(R.layout.logoutmenu, menu); 
     return super.onCreateOptionsMenu(menu); 
    } 

내가 코드를 사용하여 Robotium의 메뉴를 클릭하려고 : 저는 옵션 메뉴를 설정 내 응용 프로그램에서 다음 코드를 :

solo.clickOnView(solo.getView(R.id.logoutmenu)); 
solo.clickOnMenuItem("Share My Artists"); 
:

View is null and therefore cannot be clicked. 

는 또한 또한 실패한 아래의 코드를 사용하여 시도

+0

Android 2.3에서 테스트를 실행 하시겠습니까? – atermenji

+0

@atermenji no on 4.1 – AndroidEnthusiast

답변

18

Android 4.0 이상에서 Robotium 테스트를 실행하는 경우 solo.clickOnActionBarItem()을 사용해보십시오.

solo.sendKey(Solo.MENU); 
solo.clickInList(5); 

5 위치가 당신의 메뉴 항목 의 위치로 변경입니다 : 그냥 그렇게

View ab = _solo.getCurrentActivity().findViewById(R.id.action_bar); 
ArrayList<View> views = _solo.getViews(ab); 
for (int i = 0; i <views.size(); i++) { 
    if (views.get(i).getClass().getName().contains("ActionMenuPresenter")) { 
     _solo.clickOnView(views.get(i)); 
     _solo.waitForText(SOME_TEXT); 
    } 
} 
+0

올바른 매개 변수에 대해 궁금한 사람들은 "int id"이므로 {0, 1, ...}을 넣지 말고 R.id.your_id를 넣으십시오. ;) – zatziky

+0

작업 모음에서 오버플로 메뉴를 클릭하고 설정 항목을 클릭하고 싶습니다. solo.clickOnActionBarItem (0x1); 전에는 작동했지만 지금은 작동하지 않는다. 뭔가 바뀌 었다고 생각한다. 무엇을 알지 못한다. appcompat 액션 바. apk를 사용하여 테스트 중이며 R.id.x에 액세스 할 수 없습니다. –

0

나는이 모든 SDK를 작업이를 사용하여 얻을 수 첫 번째는 1, 두 번째는 2 등입니다.

0

:

관련 문제