невозможно сравнить строки в тестах робота из-за исходной строки

#testing #automation #scripting #robotframework

#тестирование #автоматизация #сценарии #robotframework

Вопрос:

Что я пытаюсь сделать, так это получить запись из таблицы и сравнить ее с текстом в элементе веб-интерфейса.

Я запускаю docker и запускаю команду для извлечения верхней записи, которая работает нормально

docker exec -it 60493033cec6 /bin/sh -c 'mysql -uroot -ppassword -Bse "use requestdb; select REQUEST_ID from infra_active_requests limit 1;"'

Команда echo для вышеуказанного выводит следующее:-

    req_id=$'0327902d-6346-4c61-94b2-9da532bc7ef3r'

   echo Record: $'0327902d-6346-4c61-94b2-9da532bc7ef3r'    

Record: 0327902d-6346-4c61-94b2-9da532bc7ef3          notice there is no r here

   export $'req_id=0327902d-6346-4c61-94b2-9da532bc7ef3r'

   req_id=$'0327902d-6346-4c61-94b2-9da532bc7ef3r' `// r included in the string here.
  

И в тестах я использую приведенную ниже инструкцию для сравнения строк

 ${result}  Get Text  xpath = //*[@id="mat-tab-content-0-0"]/div/mat-table/mat-row[1]/mat-cell[1]/a
Should be equal as Strings   ${result}    ${REQ_ID}  //REQ_ID has the request id created before
${REQ_ID} =  Fetch From Left ${REQ_ID} r `     // to remove the r
  

Я пытаюсь установить значение результата из запроса к БД на $ {RESULT}, используя

${REQ_ID} = Fetch From Left ${REQ_ID} r

Я все делаю правильно? Библиотека строк импортирована

Ошибка, которую я получаю, это:-

 1. No keyword with name 'Fetch From Left ${REQ_ID} r' found.
  

или

 2. 0327902d-6346-4c61-94b2-9da532bc7ef3 != 0327902d-6346-4c61-94b2-9da532bc7ef3   ///when run without the fetch from left command
  

Ответ №1:

В Fetch from left ключевом слове должно быть не менее 2 пробелов между ключевым словом и аргументами. В вашем коде, похоже, есть только одно между Fetch From Left , ${REQ_ID} и r . Вот почему вы получаете No keyword with name 'Fetch From Left ${REQ_ID} r' found. ошибку.

Кроме того, если вы не можете сравнить строки из-за r символа, вам следует сравнить строку после удаления /r . Поменяйте местами номера строк 2 и 3.

 ${result}  Get Text  xpath = //*[@id="mat-tab-content-0-0"]/div/mat-table/mat-row[1]/mat-cell[1]/a
${REQ_ID} =  Fetch From Left  ${REQ_ID}  r      // to remove the r
Should be equal as Strings   ${result}    ${REQ_ID}  //REQ_ID has the request id created before
  

Я почти уверен, что это должно сработать. Прокомментируйте, если это не так.