Hamidreza Shokouhi:
私は自分のアプリケーションのためのエスプレッソUIテストを書き、(この場合のImageButtonで)いくつかのビューのためにperform(click())
動作しませんし、また、エラーが表示されません。これは働いていない行です。
try {
Thread.sleep(TIME_NORMAL_ELPASED);
} catch (InterruptedException e) {
e.printStackTrace();
}
onView(allOf(withId(R.id.toolbar_navigation_btn)
, isCompletelyDisplayed())).perform(click());
これは私のXMLは次のとおりです。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="activities.DepartFlight.fragments.AvailableFragment">
<android.support.v7.widget.Toolbar
android:id="@+id/available_toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:layout_alignParentTop="true"
android:background="@drawable/background_toolbar">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ImageButton
android:id="@+id/toolbar_navigation_btn"
android:layout_width="@dimen/icon_toolbar"
android:layout_height="@dimen/icon_toolbar"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_centerVertical="true"
android:background="@drawable/button_selector"
android:rotation="180"
android:src="@drawable/ic_back"
android:tint="@color/white" />
<com.faranegar.bookflight.customView.CustomTextView
android:id="@+id/text_toolbar_flight"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_marginTop="2dp"
android:textColor="@color/white" />
<com.faranegar.bookflight.customView.CustomTextView
android:id="@+id/toolbar_subtitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/text_toolbar_flight"
android:layout_centerHorizontal="true"
android:textColor="@color/white"
android:textSize="@dimen/font_size" />
</RelativeLayout>
</android.support.v7.widget.Toolbar>
<include
android:id="@+id/zero_filtered_items"
android:visibility="gone"
layout="@layout/zero_filterd_itesm_row" />
<com.faranegar.bookflight.customView.CustomRecyclerView
android:id="@+id/available_recycler_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@+id/depart_flight_activity_footer"
android:layout_below="@id/available_toolbar"
android:background="@android:color/transparent"
android:visibility="gone"
/>
<com.tuyenmonkey.mkloader.MKLoader
android:id="@+id/progressBar"
android:layout_width="55dp"
android:layout_height="55dp"
android:layout_centerInParent="true"
android:visibility="gone"
app:mk_color="@color/colorPrimary"
app:mk_type="TwinFishesSpinner" />
<RelativeLayout
android:id="@+id/depart_flight_activity_footer"
android:layout_width="match_parent"
android:layout_height="44dp"
android:layout_alignParentBottom="true"
android:background="@color/colorPrimary"
android:visibility="visible">
<LinearLayout
android:id="@+id/view_sort"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_marginLeft="18dp"
android:layout_marginStart="18dp"
android:gravity="center"
android:orientation="horizontal">
<ImageView
android:layout_width="15dp"
android:layout_height="15dp"
android:src="@drawable/sort_icon"
android:tint="@color/white" />
<com.faranegar.bookflight.customView.CustomTextView
android:id="@+id/sortText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:layout_marginStart="5dp"
android:text="@string/sort_text"
android:textColor="@color/white"
android:textSize="@dimen/text_less_normal" />
</LinearLayout>
<LinearLayout
android:id="@+id/view_filter"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_marginLeft="18dp"
android:layout_toRightOf="@id/view_sort"
android:gravity="center"
android:orientation="horizontal"
android:visibility="visible">
<ImageView
android:layout_width="15dp"
android:layout_height="15dp"
android:src="@drawable/ic_filter"
android:tint="@color/white" />
<com.faranegar.bookflight.customView.CustomTextView
android:id="@+id/filterText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:layout_marginStart="5dp"
android:text="@string/filter_text"
android:textColor="@color/white"
android:textSize="@dimen/text_less_normal" />
</LinearLayout>
<RelativeLayout
android:id="@+id/next_day"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_toLeftOf="@+id/back_day">
<Button
android:id="@+id/next_day_available_btn"
android:layout_width="20dp"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:background="@drawable/button_selector"
android:textColor="@color/white"
android:textSize="@dimen/icon_btn" />
<com.faranegar.bookflight.customView.CustomTextView
android:id="@+id/next_day_available_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_toRightOf="@id/next_day_available_btn"
android:text="@string/next_day"
android:textColor="@color/white"
android:visibility="visible" />
</RelativeLayout>
<RelativeLayout
android:id="@+id/back_day"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_marginLeft="15dp"
android:layout_marginStart="15dp">
<Button
android:id="@+id/prev_day_available_btn"
android:layout_width="20dp"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_toRightOf="@+id/prev_day_available_text"
android:background="@drawable/button_selector"
android:textColor="@color/white"
android:textSize="@dimen/icon_btn" />
<com.faranegar.bookflight.customView.CustomTextView
android:id="@+id/prev_day_available_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:text="@string/back_day"
android:textColor="@color/white" />
</RelativeLayout>
</RelativeLayout>
<com.faranegar.bookflight.customView.CustomTextView
android:id="@+id/warning"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="@string/not_available_flights"
android:textColor="@android:color/black"
android:textSize="16sp"
android:visibility="gone" />
<com.faranegar.bookflight.customView.CustomTextView
android:id="@+id/ads_motto_captan"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/progressBar"
android:layout_centerInParent="true"
android:padding="15dp"
android:text="@string/captan_ads_motto"
android:textColor="@color/colorPrimary"
android:textSize="16sp"
android:visibility="gone" />
<WebView
android:id="@+id/arzanBelitBanner"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_above="@+id/depart_flight_activity_footer"
android:visibility="gone" />
<include
android:id="@+id/failedLayout"
layout="@layout/failed_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:visibility="gone"
/>
<include
android:id="@+id/saatraapProgressBarLayout"
layout="@layout/saatraap_brogressbar_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_centerInParent="true"
android:visibility="gone" />
フラグメントショー上記XML。
どうしましたか?
アーロン :
私が考えてsetRotation
混乱したかもしれないclick()
と座標計算。そのような場合、あなたはどちらかの削除ができandroid:rotation
、その後、物理的に画像を回転させる、またはカスタム・クリック・アクションを作成してみてください。
public static ViewAction forceClick() {
return new ViewAction() {
@Override public Matcher<View> getConstraints() {
return allOf(isClickable(), isEnabled());
}
@Override public String getDescription() {
return "force click";
}
@Override public void perform(UiController uiController, View view) {
view.performClick();
uiController.loopMainThreadUntilIdle();
}
};
}
このアクションを実行するには、起動することにより、ビューをクリックしてperformClick()
その座標を見つけることなく。しかし、ことを確認してくださいビューはアプリで添付クリックリスナーがあります。
onView(withId(R.id.toolbar_navigation_btn)).perform(forceClick());