Reputation: 21
I want to find the button with id 'buttonActionNo' from the following view hierarchy.
I tried the following code, but it doesn't work. Giving 'No views in hierarchy found matching:' error.
**ViewInteraction appCompatImageButton3 = onView(
allOf(withId(R.id.buttonActionNo),
allOf( withhParent(withId(R.id.actionButtonPanel)),
allOf( withParent(withId(R.id.outerContainer)),
allOf( withParent(withId(R.id.questioContainer)),
withParent(withId(R.id.redFlagQuestion1))))),
isDisplayed()));
appCompatImageButton3.perform(click());**
Has anyone tried to grab a view which has few level of nested parents?
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<!-- redFlagQuestion1 -->
<FrameLayout android:id="@+id/questionOneContainer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white">
<include
android:id="@+id/redFlagQuestion1"
layout="@layout/row_base" />
</FrameLayout>
<!-- redFlagQuestion 2 -->
<FrameLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white">
<include
android:id="@+id/fillerLayout2"
layout="@layout/fill_space" />
<include
android:id="@+id/redFlagQuestion2"
layout="@layout/row_base" />
</FrameLayout>
<!-- redFlagQuestion 3 -->
<FrameLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white">
<include
android:id="@+id/fillerLayout3"
layout="@layout/fill_space" />
<include
android:id="@+id/redFlagQuestion3"
layout="@layout/row_base" />
</FrameLayout>
row_base.xml view hierarchry as follows:
+---------->LinearLayout{id=2131492990, res-name=redFlagQuestion1, visibility=VISIBLE, width=1080, height=780, has-focus=false, has-focusable=true, has-window-focus=true, is-clickable=false, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=false, is-selected=false, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=0.0, child-count=1} | +----------->LinearLayout{id=2131493041, res-name=outerContainer, visibility=VISIBLE, width=1080, height=780, has-focus=false, has-focusable=true, has-window-focus=true, is-clickable=false, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=false, is-selected=false, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=0.0, child-count=1} |
+------------>RelativeLayout{id=2131493042, res-name=questioContainer, visibility=VISIBLE, width=1080, height=780, has-focus=false, has-focusable=true, has-window-focus=true, is-clickable=false, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=false, is-selected=false, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=0.0, child-count=5} |
+------------->AppCompatTextView{id=2131493043, res-name=questionPanelQuestionNo, visibility=VISIBLE, width=1080, height=101, has-focus=false, has-focusable=false, has-window-focus=true, is-clickable=false, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=false, is-selected=false, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=30.0, text=1, input-type=0, ime-target=false, has-links=false} |
+------------->AppCompatImageButton{id=2131493044, res-name=questionPanelUpArrow, visibility=GONE, width=0, height=0, has-focus=false, has-focusable=false, has-window-focus=true, is-clickable=true, is-enabled=true, is-focused=false, is-focusable=true, is-layout-requested=true, is-selected=false, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=0.0} |
+------------->AppCompatTextView{id=2131493045, res-name=questionPanelQestion, visibility=VISIBLE, width=960, height=152, has-focus=false, has-focusable=false, has-window-focus=true, is-clickable=false, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=false, is-selected=false, root-is-layout-requested=false, has-input-connection=false, x=60.0, y=161.0, text=Is the child becoming less responsive?, input-type=0, ime-target=false, has-links=false} |
+------------->AppCompatTextView{id=2131493046, res-name=questionPanelQestionExample, visibility=VISIBLE, width=960, height=114, has-focus=false, has-focusable=false, has-window-focus=true, is-clickable=false, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=false, is-selected=false, root-is-layout-requested=false, has-input-connection=false, x=60.0, y=343.0, text=For example, 'not answering questions' or 'not making sense, input-type=0, ime-target=false, has-links=false} |
+------------->RelativeLayout{id=2131493047, res-name=actionButtonPanel, visibility=VISIBLE, width=1080, height=270, has-focus=false, has-focusable=true, has-window-focus=true, is-clickable=false, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=false, is-selected=false, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=480.0, child-count=4} |
+-------------->AppCompatImageButton{id=2131493048, res-name=buttonActionYes, visibility=VISIBLE, width=200, height=200, has-focus=false, has-focusable=true, has-window-focus=true, is-clickable=true, is-enabled=true, is-focused=false, is-focusable=true, is-layout-requested=false, is-selected=false, root-is-layout-requested=false, has-input-connection=false, x=260.0, y=0.0} |
+-------------->AppCompatImageButton{id=2131493049, res-name=buttonActionNo, visibility=VISIBLE, width=200, height=200, has-focus=false, has-focusable=true, has-window-focus=true, is-clickable=true, is-enabled=true, is-focused=false, is-focusable=true, is-layout-requested=false, is-selected=false, root-is-layout-requested=false, has-input-connection=false, x=620.0, y=0.0} |
+-------------->AppCompatTextView{id=2131493050, res-name=txtViewYes, visibility=VISIBLE, width=200, height=49, has-focus=false, has-focusable=false, has-window-focus=true, is-clickable=false, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=false, is-selected=false, root-is-layout-requested=false, has-input-connection=false, x=260.0, y=221.0, text=Yes, input-type=0, ime-target=false, has-links=false} |
+-------------->AppCompatTextView{id=2131493051, res-name=txtViewNo, visibility=VISIBLE, width=200, height=49, has-focus=false, has-focusable=false, has-window-focus=true, is-clickable=false, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=false, is-selected=false, root-is-layout-requested=false, has-input-connection=false, x=620.0, y=221.0, text=No, input-type=0, ime-target=false, has-links=false} |
Upvotes: 2
Views: 3281
Reputation: 517
Based on view hierarchry you have mistaked in order of outerContainer and questioContainer.
And I would try different sample of code in onView:
allOf(withId(R.id.buttonActionNo), withParent(withParent(withParent(withParent(withId(R.id.redFlagQuestion1)))))
Upvotes: 7