Как мне нажать кнопку "Ввод" после ввода пароля через командную строку?
Я использовал следующий код, который запускает команду и запрашивает пароль. Когда я вводил пароль с помощью sendline, логин почему-то не происходил.
Как отладить это и убедиться, что кнопка "Enter" отправлена?
Код:
child = pexpect.spawn('tool --server=commander.company.com login username',logfile=sys.stdout)
child.expect('Password:')
child.sendline('com0201')
1 ответ
Решение
sendline()
автоматически отправит символ новой строки, определенный в os.linesep
, поэтому вам не нужно делать ничего особенного, чтобы отправить "кнопку ввода".
У вас включено ведение журнала; какой выход вы видите?
Что-то еще, чтобы попробовать child.interact()
после отправки пароля. Это позволит вам взаимодействовать с дочерним процессом и может дать некоторую подсказку, если возникнет проблема.