2013-04-13 15 views
7

私はRobotiumでいくつかの自動テストを実行しようとしています。しかし、私のテストがエラーで原因失敗Robotiumのアクションバーメニュー項目をクリック

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);前に働いていたが、今は働いていない、何か変わったと思う。私はapkを使ってテストしています。アクセス権はありません。R.id.x –

0

は、私はそれは、すべてのSDKに取り組んでこれを使用して得ることができます最初は1、二番目は2など

0

関連する問題