2017-03-06 112 views
1

我有在Android咖啡UI測試的一個問題,當我嘗試點擊圖像按鈕:上的ImageButton的Android咖啡點擊點擊錯誤的位置

我有以下佈局:

<LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:orientation="horizontal" 
      android:background="#FFFFFF"> 

     <ImageButton 
       android:id="@+id/parent_task_button" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:background="#00000000" 
       android:rotation="90" 
       android:layout_gravity="center_vertical" 
       android:src="@drawable/ic_subdirectory_arrow_left_black_24dp" 
       android:paddingRight="10dp" 
       android:paddingLeft="12dp"/> 

     <View 
       android:layout_width="1dp" 
       android:layout_height="match_parent" 
       android:background="@color/layout_divider"></View> 

     <com.mypackage.ui.TasklistItem 
       android:id="@+id/parent_task_item" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content"/> 

    </LinearLayout> 

在我的應用程序,這看起來是這樣的:

enter image description here

在我的咖啡測試我嘗試一下用它的按鈕(一個帶箭頭)

onView(withId(R.id.parent_task_button)).perform(click()); 

但點擊不起作用。我踩着它通過(啓用了Android的「查看水龍頭」和「指針位置」開發商設置)和事實證明,這項測試並沒有點擊集中在圖像按鈕,但這裏點擊:

enter image description here

。 ..完全在分隔線上,但不在ImageButton的中心。

如果我用正常的按鈕替換ImageButton,點擊是正確的,測試工作! 有沒有人知道這裏有什麼問題或如何解決它?

回答

2

我發現,導致問題(在ImageButton的)行:

android:rotation="90" 

如果我從圖像按鈕,點擊是正確的中間刪除此旋轉。 所以我的臨時解決方法是旋轉drawable本身而不是按鈕。

我目前也在深入研究android espresso代碼,並試圖在這裏找到錯誤的代碼。 似乎點擊座標的計算是錯誤的,因爲它忽略了旋轉並因此計算錯誤。 如果我找到任何東西,將更新這篇文章。

+0

我發現同樣的問題,並創建了一個問題:https://issuetracker.google.com/issues/64758984 – duanbo1983