Попытка использовать «Добавить в файл» вызывает исключение AttributeError - PullRequest
0 голосов
/ 29 октября 2018

Я пытаюсь добавить данные, хранящиеся в переменной, в файл. Файл был успешно создан, а данные сохранены в переменной; Тем не менее, я продолжаю получать AttiributeError:

AttributeError: 'NoneType' object has no attribute 'replace' 

вот мои результаты

KEYWORD ${FileA} = OperatingSystem . Create File metrics/Live_RTT.txt, ${MT_Com_RTT_LB_Live_Topics}
00:00:05.233 KEYWORD Selenium2Library . Click Element ${BLANK_CANVAS}
00:00:05.129 KEYWORD Selenium2Library . Click Element //div[@title='${device1}']
00:00:05.063 KEYWORD Selenium2Library . Click Element //div[@title='${device2}']
00:00:00.045 KEYWORD ${MT_Com_RTT_LB_Live_Topics} = Selenium2Library . Get Text xpath=${REAL_TIME_TRENDING_TOPICS}
00:00:00.001 KEYWORD BuiltIn . Log ${MT_Com_RTT_LB_Live_Topics}
Documentation:  

Logs the given message with the given level.
Start / End / Elapsed:  20181028 21:37:34.971 / 20181028 21:37:34.972 / 00:00:00.001
21:37:34.971    INFO    Available Topics
Active Energy Delivered + Received
Active Energy Into the Load
Active Energy Out of the Load
Active Power
Active Power A  
00:00:00.001 KEYWORD OperatingSystem . Append To File ${FileA}, ${MT_Com_RTT_LB_Live_Topics}
Documentation:  

Appends the given content to the specified file.
Start / End / Elapsed:  20181028 21:37:34.972 / 20181028 21:37:34.973 / 00:00:00.001
21:37:34.973    FAIL    AttributeError: 'NoneType' object has no attribute 'replace'

1 Ответ

0 голосов
/ 29 октября 2018

Глядя на источник библиотеки, наиболее вероятное исключение возникает в методе normalize_path(), который выполняет замену строки:

    path = os.path.normpath(os.path.expanduser(path.replace('/', os.sep)))

, где path - имя файла - первый аргумент вызова Append To File kw. Исключение говорит, что его значение равно None (например, значение не задано), в то время как оно должно быть некоторой строкой.

Глядя в журнал, вы устанавливаете для этого значения возвращаемое значение Create File - но это ключевое слово не возвращает его вообще, оно просто создает файл, указанный в первом аргументе.
Итак, чтобы решить - просто установите значение ${FileA} самостоятельно, передайте его двум ключевым словам и не переназначайте в вызове Create File.

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