5

こんにちは、私はロボティウムを初めて使用し、現在アプリケーションでアンドロイド「actionbaritems」をテストしています。次のコードを使用しました。

assertTrue(solo.searchText("Log In";));

solo.clickOnButton("Log In";); 

solo.waitForActivity(LAUNCHER_ACTIVITY_FULL_CLASSNAME); 

assertTrue(solo.searchText("Forgot password?";));

solo.clearEditText(0); 

solo.enterText(0, "stest123";);

solo.enterText(1, "123456";);

solo.waitForActivity(LAUNCHER_ACTIVITY_FULL_CLASSNAME);

 final EditText editText = solo.getEditText(1); // Create a runnable which triggers the 

onEditorAction callback Runnable runnable = new Runnable()

 { 

public void run() 

{ 
editText.onEditorAction(EditorInfo.IME_ACTION_DONE); 

} 
}; // Use Solo to get the current activity, and pass our runnable to the UI // thread. 

solo.getCurrentActivity().runOnUiThread(runnable); 

solo.waitForActivity(LAUNCHER_ACTIVITY_FULL_CLASSNAME); 

System.out.println(solo.getCurrentActivity().getLocalClassName().toString()); 

getInstrumentation().invokeContextMenuAction(getActivity(),3,0); 

solo.clickOnText("Nearby";);

solo.sleep(1000); 

View actionbarItem1 = solo.getView(2);

solo.clickOnView(actionbarItem1);

actionbaritem をクリックすることができません。コードのどこが間違っているか教えてもらえますか? 私はapkのソースを持っていないので、通常の方法でそれを渡すことはできません.これに代わるもの、または私が間違っていたアイデアはありますか? 前もって感謝します

4

1 に答える 1

2

あなたはここでかなり奇妙なことをしています:

View actionbarItem1 = solo.getView(2);

このsolo.getView(int id)メソッドは、R.id からビューの ID を取得します。(パスのように)

すべての ID が参照される R.java という名前のファイルにクラスがあります。ビューを作成すると、ビューの ID が生成されます。各 ID はビューに一致します。

public static final class id {
    public static final int fancy_action_item_id=0x7f07016a;
}

このメソッドfindViewById(int id)は、id を指定することで、必要なビューを取得するのに役立ちます。多分あなたはこのように進むべきです:

View actionBarItem1 = yourActivity.findViewById(R.id.fancy_action_item_id);
solo.clickOnView(actionBarItem1);
于 2013-06-14T14:40:58.573 に答える