Скрипт Robo прерывается при использовании SwipeRefreshLayout
Мой скрипт Robo прерывается, когда он встречает макет в этой структуре:
<?xml version="1.0" encoding="utf-8"?>
<androidx.drawerlayout.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/white"
android:fitsSystemWindows="true"
tools:context=".ui.AuftraegeActivity">
<androidx.swiperefreshlayout.widget.SwipeRefreshLayout
android:id="@+id/swipeRefreshLayout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ListView
android:id="@+id/projekte_listview"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center_horizontal"
android:background="@android:color/white"
android:clipToPadding="false"
android:divider="#d3d3d3"
android:dividerHeight="2dp"
android:paddingStart="10dp"
android:paddingEnd="10dp"
android:scrollbarStyle="outsideOverlay"
android:visibility="gone"
tools:visibility="visible" />
</androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
<include layout="@layout/navdrawer" />
</androidx.drawerlayout.widget.DrawerLayout>
Здесь я пытаюсь нажать на первую запись ListView
,
Видимость ListView
установлен видимым внутри AuftraegeActivity
после успешной синхронизации с сервером. Во время синхронизации (UI-Blocking) отображается индикатор выполнения.
Удаление SwipeRefreshLayout
пусть скрипт Robo будет успешно запущен
Вот соответствующая часть скрипта Robo:
{
"eventType": "LIST_ITEM_CLICKED",
"timestamp": 1542633892083,
"replacementText": "",
"actionCode": -1,
"delayTime": 0,
"canScrollTo": false,
"elementDescriptors": [
{
"className": "android.widget.LinearLayout",
"recyclerViewChildPosition": -1,
"adapterViewChildPosition": 0,
"groupViewChildPosition": -1,
"resourceId": "de.tarent.ngop.android.debug:id/ll_auftrag_list_item_container",
"contentDescription": "",
"text": ""
},
{
"className": "android.widget.ListView",
"recyclerViewChildPosition": -1,
"adapterViewChildPosition": -1,
"groupViewChildPosition": 0,
"resourceId": "de.tarent.ngop.android.debug:id/projekte_listview",
"contentDescription": "",
"text": ""
},
{
"className": "androidx.swiperefreshlayout.widget.SwipeRefreshLayout",
"recyclerViewChildPosition": -1,
"adapterViewChildPosition": -1,
"groupViewChildPosition": 0,
"resourceId": "de.tarent.ngop.android.debug:id/swipeRefreshLayout",
"contentDescription": "",
"text": ""
}
]
},
2 ответа
В качестве способа устранения этой проблемы было бы полезно, если бы вы записали те же действия с помощью Espresso Test Recorder (в Android Studio, Run -> Record Espresso Test) и посмотрите, есть ли у теста такая же проблема. Если да (скорее всего), это даст нам подробное сообщение об ошибке о том, что пошло не так.
В качестве временного решения вы можете удалить последний дескриптор элемента для вашего действия LIST_ITEM_CLICKED, то есть удалить последний блок в фигурных скобках (тот, который упоминает SwipeRefreshLayout), а также запятую перед ним. Пожалуйста, дайте нам знать, если это помогло. Спасибо!
{
"eventType": "LIST_ITEM_CLICKED",
"timestamp": 1542633892083,
"replacementText": "",
"actionCode": -1,
"delayTime": 0,
"canScrollTo": false,
"elementDescriptors": [
{
"className": "android.widget.LinearLayout",
"recyclerViewChildPosition": -1,
"adapterViewChildPosition": 0,
"groupViewChildPosition": -1,
"resourceId": "de.tarent.ngop.android.debug:id/ll_auftrag_list_item_container",
"contentDescription": "",
"text": ""
}
]
},