2017-03-22 4 views
1

私のアプリで一致するテキストの最初の要素をタップしようとしています。 しかし、現時点では、私の現在のコード行のために複数の一致があることを伝えるエラーが表示されています。 onView(allOf(withId(R.id.offerSummaryLayout))).perform(RecyclerViewActions.actionOnItem(Matchers.allOf(hasDescendant(withText("Online sale"))), click()));リサイクラービューで最初に一致するテキストをタップAndroidエスプレッソのテスト

最初に一致する要素をクリックするように変更するにはどうすればよいですか?事前に感謝

答えて

3

複数の一致があり、最初のものだけが気になる場合は、カスタムマッチャーを作成できます。 This one hereはうまく動作するはずです。

次に、あなたがそのようなことを行うことができます(私はあなたのコードビットを簡素化 - あなたは一つだけ条件がある場合は、Matchers.allOfは必要ありません):

onView(withId(R.id.offerSummaryLayout)).perform(RecyclerViewActions 
     .actionOnItem(first(hasDescendant(withText("Online sale"))), click())); 
+0

感謝を!しかし、これはまだ私には 'AmbiguousViewMatcherException: 'と同じエラーを与えています。id:uk.co.vouchercodes.android.beta:id/offerSummaryLayout'は、階層内の複数のビューに一致します。 問題ビューには「**** MATCHES ****」と表示されています。 –

+0

さらに詳しい情報を入力する必要があります。コード、画面、エラー... –

+0

@Billy Boyoは 'offerSummaryLayout'' RecyclerView'のIDですか? –

関連する問題