Скрипт 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": ""
  }
]
},
Другие вопросы по тегам