【发布时间】:2020-06-03 18:54:28
【问题描述】:
我正在使用 pexpect 发送此命令:
fmsadmin list files -s
有了这个互动程序
[('username \\(.+\\):', 'userName\n'), ('password:', 'invalidPW\n'),
('username \\(.+\\):', 'userName\n'), ('password:', 'validPW\n')]
像这样:
run( cmd, events=program, timeout=20)
以 4 对用户名和密码而不是 2 对结尾:
username (userName): userName
password:
fmsadmin: Permission denied, please try again.
username (userName): userName
password:
fmsadmin: Permission denied, please try again.
username (userName): userName
password:
fmsadmin: Permission denied, please try again.
username (userName): userName
password:
fmsadmin: Permission denied.
Error: 9 (Access denied)
交互式程序的结构有问题吗?也许有一个不同的计时器来等待短语出现?当我只编程 2 对时,为什么我得到 4 对。顺便说一句,对我来说,这些用于用户名和密码的较小程序中的每一个都是独立的功能。当我执行此功能的 1 对版本时,它可以工作。爱荷华:
这行得通:
[('username \\(.+\\):', 'userName\n'), ('password:', 'validPW\n')]
对于上面的交互式程序,我这样做:
[iUserName(), iPassword()]
顶部的交互式程序是通过以下方式生成的:
[iUserName(), invPassword(), iUserName(), iPassword()]
我只包含这些以表明代码正在生成一致的程序。我相信输出示例是我们应该关注的。
【问题讨论】:
标签: python-3.x pexpect