Фреймворк робота — как добавить тысячи запятых в числовую строку

#robotframework

#robotframework

Вопрос:

Нужна помощь в том, как добавить в середине строки

Я хочу добавить значение 2.

  1. запишите сумму. количество, отображаемое в системном опыте: 79 000,00
  2. удалите строку и .00, чтобы преобразовать ее в число
  3. преобразовать в число
  4. вычислить значение 2
  5. получен результат = ${Ожидаемые результаты}
  6. сравните результат со значением, отображаемым на экране.

Моя проблема в том, что на экране отображается сумма в 80 000,00 долларов, но $ {expectedResults} отображается как 80000,00. Таким образом, фреймворк робота потерпит неудачу.

может кто-нибудь помочь мне, как я могу добавить, чтобы сделать это 80,0000.00

Заранее благодарю вас

 ${list1}=    Get text    xpath=//table[3]/tbody/tr[4]/td[6]
${list2}=    Get Text    xpath=//table[3]/tbody/tr[5]/td[6]
${list3}    Remove String    ${list1}    ,    .00
${list4}    Remove String    ${list2}    ,    .00
log    ${list3}
${list3}    Convert To Number    ${list3}    2
${list4}    Convert To Number    ${list4}    2
log    ${list3}
log    ${list4}
${expectedResults}=    Evaluate    (${list3}   ${list4})
${expectedResults}=    Convert To Number    ${expectedResults}    2
${expectedResults}=    Evaluate    "%.2f" % ${expectedResults}
Log    ${expectedResults}
Table cell Should Contain    xpath=//table[3]    4    6    ${list1}
Table cell Should Contain    xpath=//table[3]    5    6    ${list2}
Table cell Should Contain    xpath=//table[3]    6    10    ${expectedResults}
  

Комментарии:

1. try должны быть равны числам

2. Просто удалите , так же, как на шаге 2, и подтвердите

Ответ №1:

Чтобы добавить разделитель тысяч в числовую строку, используйте эту форму .format() :

 ${expectedResults}=    Evaluate    "{:,.2f}".format($expectedResults)
  

.format() это намного проще и мощнее, чем форматирование в стиле printf (конструкция, которую вы используете в настоящее время, с % ), и если вы работаете под версией python > = 3.6, f-строки еще лучше.

, В форматере указано добавление разделителя тысяч — я не думаю, что это даже опция в форматировании printf, .2f это точность.

Ответ №2:

Я решил проблему. используя Python> 3.1, используйте функцию «Форматировать строку»

 ${expectedResults}=    Evaluate    (${list3}   ${list4})
${int variable}=    Set Variable    ${expectedResults}
${string var}  =    Format String    {:,}    ${int_variable}
log    ${string var}
  

теперь он добавит запятую, разделяющую тысячи = 80 000,00