0

エスプレッソで線形レイアウトの3番目の子要素にアクセスしようとしています。 添付のスクリーンショットをご覧ください。Espress - 線形レイアウトのn番目の子要素へのアクセス

enter image description here

私はいくつかのマッチャーを試してみましたが、それは働いてませ。これを使用するに

public static Matcher<View> nthChildOf(final Matcher<View> parentMatcher, final int childPosition) { 
    return new TypeSafeMatcher<View>() { 
     @Override 
     public void describeTo(Description description) { 
     description.appendText("with "+childPosition+" child view of type parentMatcher"); 
     } 

     @Override 
     public boolean matchesSafely(View view) { 
     if (!(view.getParent() instanceof ViewGroup)) { 
       return parentMatcher.matches(view.getParent()); 
     } 

     ViewGroup group = (ViewGroup) view.getParent(); 
     return parentMatcher.matches(view.getParent()) && group.getChildAt(childPosition).equals(view); 
     } 
    }; 
    } 

:あなたは、カスタム照合を作成する必要が

答えて

0

あなたの場合

onView(nthChildOf(withId(R.id.directParentLinearLayout), 0).check(matches(withText("I am the first child")); 

あなたもそれを確認する必要がユニークなIDを持っていレイアウトの子孫であります:

onView(nthChildOf(allOf(withId(R.id.directParentLinearLayout), isDescendantOfA(withId(R.id.linearLayoutWithUniqueId))), 0).check(matches(withText("I am the first child")); 
関連する問題