【问题标题】:pexpect - how to pass in password using eventspexpect - 如何使用事件传递密码
【发布时间】:2018-10-23 00:09:44
【问题描述】:
在这个狙击手中,我试图将密码作为事件传递,为什么以下操作不起作用?
password = input("INPUT PASSWORD: ")
pexpect.run("ssh -lX user@gmail.com 'ls -l'",
events={'(?i)password':' \n'}, password)
【问题讨论】:
标签:
python
automation
automated-tests
pexpect
【解决方案1】:
根据documentation 为 pexpect 提供的示例,您似乎应该将密码作为'(?i)password' 值的一部分传递。
from pexpect import *
run('scp foo user@example.com:.', events={'(?i)password': mypassword})
在你的情况下,这将转化为这个。
pexpect.run(
"ssh -lX eandersson@my-server.com 'ls -l'",
events={'(?i)password': '%s\n' % password}
)
使用 getpass 隐藏密码的更完整示例如下所示。
import pexpect
import getpass
password = getpass.getpass('Password: ')
print pexpect.run(
"ssh -lX eandersson@10.0.1.1 'ls -l'",
events={'(?i)password': '%s\n' % password}
)