2013-04-13 15 views
7

Próbuję uruchomić kilka automatycznych testów w Robotium. Mam następujący kod w mojej aplikacji, które ustawia się menu opcji:Kliknięcie na elementy menu paska czynności w Robotium

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

klikam w menu w Robotium przy użyciu kodu:

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

Jednak moje badania nie ze względu z błędem :

View is null and therefore cannot be clicked. 

próbowałem również przy użyciu kodu poniżej której również nie powiodło się:

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

Czy przeprowadzasz swoje testy na Android 2.3? – atermenji

+0

@atermenji nie na 4.1 – AndroidEnthusiast

Odpowiedz

18

jeśli używasz testów robotów na Androida 4.0+, rozważ użycie solo.clickOnActionBarItem().

+0

Tylko dla osób zastanawiających się nad poprawnym parametrem, jest to "int id", więc nie umieszczaj {0, 1, ...}, ale R.id.twoj_id. ;) – zatziky

+0

Chcę kliknąć menu przepełnienia na pasku akcji i kliknąć element pozycji. solo.clickOnActionBarItem (0x1); pracowałem wcześniej, ale teraz nie działa, myślę, że coś się zmieniło nie wiem co, pasek akcji appcompat. Testuję używając apk Nie mam dostępu o R.id.x –

0

mogłem dostać pracy na wszystkich SDK, za pomocą tego:

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

Wystarczy zrobić:

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

5 jest pozycja wystarczy zmienić go na stanowisko swojej pozycji menu Pierwszy to 1, drugi to 2 itd.

Powiązane problemy