0

Robotiumを使用してDatePickerDialogで「設定」ボタンをクリックしています

solo.clickOnButton("Set"); 

テストデバイスの言語を別の言語に変更すると、Robotium はボタンを見つけることができません。これは、テキストが「設定」ではなく、翻訳された単語であるためです。

別の方法でピッカーのボタンにアクセスする可能性はありますか?

Jelly Bean の場合と同様に、DatePicker に「キャンセル」ボタンがありません。clickOnButton(int index) メソッドを使用できません。

私が持っている唯一のアイデアは、DatePickerDialog で setButton を使用して、ボタン テキストのローカライズされた文字列リソースにアクセスするか、ボタンへの参照を保持することです。しかし、カスタム ボタン テキストを必要とせずにアクセスするためのより良い方法を誰かが知っているかもしれません。

よろしくキム

4

4 に答える 4

0

私はそれが最善の解決策ではないことを知っていますが、私にとってはうまくいきます:

solo.clickOnButton(0);
于 2013-05-23T21:12:05.907 に答える
0

これが私の提案です(を介してダイアログを表示していると仮定しますDialogFragment):私はSelectDateDialogFragmentユニークなTAGonCreateDialog()を作成するメソッドを持っていますDatePickerDialog。次に、 を介してダイアログを表示しselectDateDialogfragment.show(getFragmentManager(), SelectDateDialogFragment.TAG)ます。Robotium のテストでは、次のようなコードを使用してダイアログのボタンをクリックします。

solo.clickOnView(editDateButton);

solo.waitForFragmentByTag(SelectDateDialogFragment.TAG);

solo.setDatePicker(0, 2000, 1, 1);

SelectDateDialogFragment dialogFragment = (SelectDateDialogFragment) activity.getFragmentManager()
        .findFragmentByTag(SelectDateDialogFragment.TAG);
DatePickerDialog dialog = (DatePickerDialog) dialogFragment.getDialog();
Button okButton = dialog.getButton(DialogInterface.BUTTON_POSITIVE);
solo.clickOnView(okButton);

solo.waitForDialogToClose();
于 2014-10-07T18:31:36.473 に答える
0

ソース コードにアクセスできる場合は、getString() と getView() の両方を使用できます。

Button button = (Button) solo.getView(R.id.x);

solo.clickOnView(button);

ローカライズされたビルドに使用するのに適した solo.getString(R.string.x) もあります。

于 2012-08-10T12:13:34.160 に答える