У меня есть немного кода, который я пытаюсь захватить стандартный вывод:
def MediaInfo():
cmd= ['MediaInfo.exe', 'videofile.mkv']
test = subprocess.run(cmd, capture_output=True)
info = test.stdout.decode("utf-8")
print (info)
При использовании print
или записи его в файл, это выглядит хорошо. Но когда я использую селен, чтобы заполнить его в окне сообщения:
techinfo = driver.find_element(By.NAME, "techinfo").send_keys(info)
, между каждой строкой появляется дополнительная пустая строка. Первоначально у меня была проблема, когда stdout
был байтовым литералом. Это выглядело как b"This is the first line.\r\nThis is the second line.\r\n"
Добавление .decode("utf-8")
- это то, что исправило это, но мне интересно, если в некоторых случаях что-то интерпретирует \r\n
как создание двух строк. Я просто не уверен, что это проблема с Selenium, подпроцессом или чем-то еще. Элемент веб-страницы, на который пишет Selenium, похоже, не имеет проблем. Это выглядит правильно, если я скопирую и вставлю его из текстового файла. Это означает, что это не просто способ отображения, а на самом деле в два раза больше переводов строки. Любые идеи? Я не хочу просто l oop и удалить лишние строки. Слишком глупый. Я предполагаю, что это проблема с Python 3 из того, что я прочитал.