在我的Android应用程序中,我有工具栏并需要在Espresso中执行工具栏返回按钮单击操作。我尝试了以下方法,但它不起作用。
需要执行其返回按钮的点击操作。
onView(withId(R.id.pageToolbar)).perform(click());
需要执行其返回按钮的点击操作。
onView(withId(R.id.pageToolbar)).perform(click());
我的ContentDescription
没有起作用,所以我不得不使用:
onView(allOf(
instanceOf(AppCompatImageButton::class.java), withParent(withId(R.id.toolbar))
))
.perform(click())
因为在层次树中我没有办法唯一地识别它:
+-------->AppCompatImageButton{id=-1, visibility=VISIBLE, width=147, height=147, 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=false, is-selected=false, layout-params=androidx.appcompat.widget.Toolbar$LayoutParams@acd01cf, tag=null, root-is-layout-requested=false, has-input-connection=false, x=21.0, y=0.0}
onView(withContentDescription("Navigate up")).perform(click());
onView(withContentDescription(R.string.abc_action_bar_up_description)).perform(click());
R.string.abc_action_bar_up_description
来自 AppCompat 支持库。id
,因为 Espresso 将其视为这样:+------> AppCompatImageButton {id=-1, desc=Navigate up, visibility=VISIBLE,
width=84, height=68, 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=false, is-selected=false,
layout-params = android.support.v7.widget.Toolbar$LayoutParams@1af06e3d,
tag=null, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=0.0}