如何通过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 (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...