Вставка задержек в скрипт robo test после его создания в регистраторе robo script - PullRequest
0 голосов
/ 14 октября 2019

Автоматически созданный скрипт rob не вставляет задержки в тех местах, которые, как мне известно, нужны моему приложению при выполнении операций настройки по сценарию. Как я могу использовать любой из этих двух вариантов, которые, по моему мнению, могут быть возможными, или есть утвержденный метод? Я не смог найти руководство по использованию скриптов, поэтому я летаю вслепую.

  1. Возьмите копию существующего «DELAYED_MESSAGE_POSTED» и переместите ее туда, где я хочу добавить задержку.

  2. Отредактируйте «delayTime» события, для которого я хотел бы добавить дополнительную задержку до / после.

Я пробовал # 1и # 2, но кажется, что скрипт не запустится после моих правок, так что либо это не тот путь, либо я что-то напутал. Любое руководство будет с благодарностью.

Вот фрагмент из сценария, который имеет оба метода. Моим комментариям в этом скрипте (только для этой публикации, а не в скрипте, который я запускал) предшествует "<<<< -". Обратите внимание, что я не включаю весь сценарий, а только одну область, которую я пробовал: </p>

[
...
{
    "eventType": "DELAYED_MESSAGE_POSTED",
    "timestamp": 1570820588045,
    "actionCode": -1,
    "delayTime": 7000,
    "canScrollTo": false,
    "elementDescriptors": []
  },
  {
    "eventType": "VIEW_CLICKED",
    "timestamp": 1570820599551,
    "replacementText": "",
    "actionCode": -1,
    "delayTime": 0,
    "canScrollTo": false,
    "elementDescriptors": [
      {
        "className": "androidx.appcompat.widget.AppCompatImageButton",
        "recyclerViewChildPosition": -1,
        "adapterViewChildPosition": -1,
        "groupViewChildPosition": 2,
        "resourceId": "com.jingleware.sosalert:id/ForwardArrow6",
        "contentDescription": "",
        "text": ""
      },
      {
        "className": "android.widget.RelativeLayout",
        "recyclerViewChildPosition": -1,
        "adapterViewChildPosition": -1,
        "groupViewChildPosition": 0,
        "resourceId": "com.jingleware.sosalert:id/thanks",
        "contentDescription": "",
        "text": ""
      },
      {
        "className": "android.widget.RelativeLayout",
        "recyclerViewChildPosition": -1,
        "adapterViewChildPosition": -1,
        "groupViewChildPosition": 0,
        "resourceId": "com.jingleware.sosalert:id/pager",
        "contentDescription": "",
        "text": ""
      }
    ]
  },
  {  <<<<- added delay  using the first method>
    "eventType": "DELAYED_MESSAGE_POSTED",
    "timestamp": 1570820605000,               <<<<- Here's where I stuck in a value, not knowing what the effect would be 
    "actionCode": -1,
    "delayTime": 1000,
    "canScrollTo": false,
    "elementDescriptors": []
  },
  {
    "eventType": "VIEW_CLICKED",
    "timestamp": 1570820606462,
    "replacementText": "",
    "actionCode": -1,
    "delayTime": 0,            <<<<- I tried to set this to 1000, without the discrete delay that's shown above 
    "canScrollTo": true,
    "elementDescriptors": [
      {
        "className": "androidx.appcompat.widget.AppCompatButton",
        "recyclerViewChildPosition": -1,
        "adapterViewChildPosition": -1,
        "groupViewChildPosition": 1,
        "resourceId": "com.jingleware.sosalert:id/NameField",
        "contentDescription": "",
        "text": ""
      },
      {
        "className": "android.widget.RelativeLayout",
        "recyclerViewChildPosition": -1,
        "adapterViewChildPosition": -1,
        "groupViewChildPosition": 0,
        "resourceId": "com.jingleware.sosalert:id/userinfoinfo",
        "contentDescription": "",
        "text": ""
      },
      {
        "className": "android.widget.ScrollView",
        "recyclerViewChildPosition": -1,
        "adapterViewChildPosition": -1,
        "groupViewChildPosition": 0,
        "resourceId": "com.jingleware.sosalert:id/userinfoscroller",
        "contentDescription": "",
        "text": ""
      },
      {
        "className": "android.widget.RelativeLayout",
        "recyclerViewChildPosition": -1,
        "adapterViewChildPosition": -1,
        "groupViewChildPosition": 1,
        "resourceId": "com.jingleware.sosalert:id/userinfo",
        "contentDescription": "",
        "text": ""
      }
    ]
  },
...
]

1 Ответ

0 голосов
/ 14 октября 2019

Вариант № 1 - это путь. Значение, которое вы назначаете метке времени, можно просто скопировать из другого события. При внедрении копии «DELAYED_MESSAGE_POSTED», пожалуйста, убедитесь, что полученный скрипт представляет собой правильно сформированный JSON (т. Е. Имеет необходимые запятые, не содержит ненужных запятых, совпадение скобок и т. Д.). Глядя на ваш пример сценария, я думаю, что это допустимое изменение, и задержка должна была сработать (при условии, что для стабилизации вашего приложения была достаточна задержка в 1 секунду).

Вы упомянули, что после изменения опции # 1 ваш сценарийне будет работатьОзначает ли это, что весь сценарий не выполняется или выполняется до какого-то действия, а затем завершается неудачей? Чем отличается выполнение сценария между исходной и измененной версиями (например, при каком действии он завершается неудачно)? Спасибо!

...