Espresso sélectionner les enfants de présentation
J'ai été en utilisant l'Espresso à réaliser automatisé INTERFACE utilisateur de test avec une application Android. (J'ai essayé de trouver une solution à la question de tout à la maison, donc je n'ai pas l'exacte des exemples et des erreurs, mais je peux pas mettre à jour demain matin). J'ai couru dans un problème avec l'unité de test des boutons à l'intérieur d'une mise en page qui est inclus plusieurs fois dans une seule interface utilisateur. Ci-dessous est un exemple rapide:
<include
android:id="@+id/include_one"
android:layout="@layout/boxes" />
<include
android:id="@+id/include_two"
android:layout="@layout/boxes" />
<include
android:id="@+id/include_three"
android:layout="@layout/boxes" />
Voici un exemple de ce qui est à l'intérieur de l' @mise en page/boîtes:
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<Button
android:id="@+id/button1" />
<Button
android:id="@+id/button2" />
</RelativeLayout>
Je suis apparemment incapable de bouton d'accès au sein de l'comprennent ce que je veux “include_one”, sans accéder à l'ensemble des trois boutons.
J'ai essayé d'accéder aux boutons suivants:
onView(allOf(withId(R.id.include_one), isDescendantOfA(withId(R.id.button1)))).perform(click());
et
onView(allOf(withId(R.id.button1), hasParent(withId(R.id.include_one)))).perform(click());
Deux que j'ai trouvé à partir de cette réponse: onChildView et hasSiblings avec Espresso Malheureusement, je n'ai pas eu de succès!
Je sais que ce n'est pas génial, mais comme je ne suis pas avec mon ordinateur, je ne peux pas vous dire exactement les erreurs que j'ai rencontré, mais j'ai rencontré:
com.google.android.apps.common.testing.ui.espresso.AmbiguousViewMatcherException
aussi une erreur me disant il n'y avait pas les correspondances trouvées.
Le code, je suis en utilisant un sens, même si je suis nouveau à l'aide de l'Espresso quelqu'un Peut donner quelques conseils, ou ce peut être un malentendu?
Vous devez vous connecter pour publier un commentaire.
C'est un piège courant lors de la tentative de
<include/>
le même xml personnalisé à plusieurs reprises dans la même disposition.Maintenant, si vous essayez d'appeler
depuis le boxes.xml est inclus plus d'une fois, vous aurez toujours obtenir comme résultat le bouton présent dans la première sous mise en page, et jamais un autre.
Vous étiez assez proche, mais vous devez utiliser le withParent() vue de correspondance.