0

我有一些需要自动化以重复测试的 ncurses 应用程序。我将“sleep”命令放在“send”命令之间。但是,我看到的是所有睡眠都是在屏幕加载之前开始执行的。期望连接发送(我在睡眠期间在屏幕底部看到)然后将它们一起发出。

我尝试使用“send -s”或“send -h”发送所有密钥。这有点帮助。我已将第 1 行的“-f”替换为“-b”——又是一个微小的差异。

为什么“睡眠”没有在正确的时间暂停。顺便说一句,我的程序有一个 getc() 循环,所以我不能使用“expect”命令。我也试过了。

#!/usr/bin/expect -f
spawn ruby testsplit.rb
#expect
set send_human {3 3 5 5 7}
set send_slow {10 1}
exp_send -s -- "--"
exec sleep 3
send -s "+"
send -s "="
sleep 1
send -h -- "-"
send -h -- "-"
sleep 1
send -h  -- "v"
interact
4

1 回答 1

0

我猜你需要等待你的 ruby​​ 程序启动,然后再继续发送和休眠。ruby 程序启动时是否有任何字符串输出(例如“准备好”)?如果是这样,在您期望注释掉的地方,我会尝试expect "ready"让 Expect 等到 ruby​​ 程序启动后再继续。

于 2010-02-09T08:22:12.677 回答