Структура робота - UnicodeDecodeError: кодек «ascii» не может декодировать байт 0xe9 в позиции 49: порядковый номер не в диапазоне (128) при вводе текста - PullRequest
0 голосов
/ 21 февраля 2019

Я запрашиваю значения из базы данных для ввода в поле ввода с помощью селена.Однако для определенных значений я получаю следующую ошибку:

UnicodeDecodeError: кодек «ascii» не может декодировать байт 0xe9 в позиции 49: порядковый номер не в диапазоне (128)

Я получаю сообщение об ошибке, когда значение, вводимое в текстовое поле, выглядит как 'Декор' .Я так понимаю, что проблема с символом "é" .Как я могу преодолеть эту ошибку?

Код робота:

*** Settings ***
Library    SeleniumLibrary
Library    DatabaseLibrary

*** Test cases ***
Test
    ${value}      Get value from database
    Input text    ${locator}    ${value}

*** Keywords ***
Get value from database
    ${queryResults}    Query    ${query}
    [Return]    ${queryResults}

Примечание: Ошибка, в частности, возникает при вводе текста в поле (шаг 2).Запись того же значения в консоль работает нормально.

1 Ответ

0 голосов
/ 21 февраля 2019

Это py2, и я подозреваю, что это будет реальный тип используемой вами переменной (value);это может быть строка байтов с символами высокого ascii в закодированной форме.

Непосредственно перед использованием в Input Text преобразуйте его в Unicode:

${value}=    Decode Bytes To String    ${value}

Если это не удастся - илине дает желаемого результата, попробуйте с помощью Convert To String:

${value}=    Convert To String    ${value}

Я подозреваю, что последний сохранит «оскорбительные» символы в их зашифрованном виде, например, «D \ xe9cor».Дайте мне знать в комментариях, мне довольно любопытно:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...