微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何通过pexpect将控件按键按下发送到ncurses应用程序

如何解决如何通过pexpect将控件按键按下发送到ncurses应用程序

我有用ncurses编写的Linux应用程序。我正在尝试使用pexpect将其自动化,但没有成功。

我可以生成应用程序并可以使用输出,但是我不能发送向下箭头键:

import pexpect
import time 
import sys,os

os.environ['LInes'] = "25"
os.environ['COLUMNS'] = "80"

child=pexpect.spawn("my_ncurses_app",maxread=4000,encoding="utf-8")
child.logfile=sys.stdout
child.setwinsize(25,80)

KEY_DOWN = '\033[B'

#close button appears on screen,After that I want to press down key twice and enter
child.expect("Close")

#ncurses_app sees KEY_DOWN as 3 different keys \033,[,B
child.send(KEY_DOWN)
child.send(KEY_DOWN)

child.sendline()
#ncurses_app sees enter as Int(10)

它对其他CLI应用程序非常有效,但不适用于我的

调试将显示3个不同的键,而不是1个向下箭头的符号应用程序。

如何发送KEY_DOWN作为一个符号?可能我应该使用其他而不是pexpect,因为smth与进程之间存在低级交互?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。