用于自动化 ncurses 类型 telnet 会话的跨平台解决方案

2023-12-05

背景

我在网络和电信领域的部分工作涉及当传统硬件无法在其他接口中提供简单的解决方案时自动执行 telnet 会话。许多旧设备只能通过工艺端口(RS-232 串行端口)、SNMP 或 Telnet 进行访问。有时,telnet 是访问特定信息的唯一方法,但是 telnet 被设计为人机界面,因此需要屏幕抓取。此外,还存在抓取屏幕的问题,其中仅更新部分内容以节省带宽(请参阅ncurses)。在我的工作中,我使用了 ActiveState Expect 和 Python telnet 库。

Question

哪些语言和库能够自动化 telnet 会话并具有以下要求:

  • 适合大型项目(例如Tcl 似乎规模不那么好 根据我的经验,Python 似乎已经过时了)
  • 跨平台(例如Pexpect 不适用于 Windows and 活动状态 Expect 的行为有所不同 视窗plus 需要较新的 DEP 机器要关闭)
  • 能够筛选重新绘制屏幕部分的抓取会话 (类似于命令行程序中 ncurses 的行为)
  • 像啤酒一样免费!

更好的解决方案还包括以下内容:

  • 易于重新分发(例如,不 需要在机器上安装一些巨大的运行时。)
  • 也适用于 SSH、串行连接和其他命令行界面。

看一下 ActiveTcl 发行版中的 demos/Expect/term_expect。它模拟光标可寻址终端,并允许您测试特定屏幕位置的输出。查看文件末尾的示例屏幕抓取代码。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

用于自动化 ncurses 类型 telnet 会话的跨平台解决方案 的相关文章

  • 从登录后的页面获取 HTML

    这个问题是我的后续问题上一个问题 https stackoverflow com questions 56279 export aspx to html关于从 ASPX 页面获取 HTML 我决定尝试使用 webclient 对象 但问题是
  • UI 自动化 - 为另一个应用程序的文本框设置文本

    我有两种形式 当单击其中一个按钮时 我想打开另一个按钮并在其中填充一个文本框 我尝试使用下面的代码 但它给出了一个错误 指出 不支持的模式 这是我的代码 private void button1 Click object sender Ev
  • Android 上的辅助功能测试自动化

    我最近开始研究 Android 上的自动化辅助功能测试 网络上没有太多信息 有人探索过这个或者目前正在这样做吗 如果是这样 您能分享您的想法 方法吗 似乎 Android 的 uiautomator 依赖于辅助功能来工作 但它不支持测试辅助
  • Selenium:如何使用相同的类名选择第n个按钮

    我正在尝试使用 css 类 btnProceed 选择第三个按钮
  • InputDispatcher:由于输入调度被禁用而丢弃事件

    我正在为 Android 开发 ui 自动化平台 由于某种原因 有时 非常罕见 点击事件可能会被删除 当它发生时我在日志中看到 I InputDispatcher 2707 Dropped event because input dispa
  • Pythoncurses不显示颜色,而Cncurses工作正常

    我似乎无法让 Pythoncurses 模块显示颜色 而 ncurses C 库工作正常 这是一个应该可以工作的简单脚本 import curses def main stdscr if not curses has colors rais
  • Windows 自动化 telnet

    我想运行一组通常在 telnet 中运行的命令 来自 c 例如我想运行以下命令 using System using System Diagnostics namespace InteractWithConsoleApp class Pro
  • Ncurses 和 Qt 互操作性

    拥有基于 Qt 和 ncurses 的应用程序 在等待用户输入时每秒刷新屏幕的最佳方法是什么 例如显示时钟并获取用户输入 我需要 CPU 使用率和应用程序响应能力之间的最佳折衷 更具体地说 如何获取用户输入并仍然使用QTimer以及信号槽机
  • 如何从 Internet Explorer 嵌入对象访问完整的 Adob​​e Acrobat AcroExch COM API?

    我有以下情况 Windows 7 SP1 32 位上的 Internet Explorer 9 Adobe Acrobat 专业版 10 一个网页 代码如下 鉴于 系统默认的PDF阅读器是Adobe Acrobat Adobe Reader
  • 如何在 PyCharm IDE 中使用子进程模块调用基于 ncurses 的应用程序?

    我想使用 subprocess 模块从 python 启动一个基于 ncurses 的应用程序 基于 ncurses 的应用程序是 TABARI 一个事件提取系统 事件提取的结果保存到文件中 我想从 python 脚本启动它 等待它终止 然
  • 页面抓取以从谷歌财经获取价格

    我试图通过抓取谷歌金融页面来获取股票价格 我在 python 中使用 urllib 包 然后使用正则表达式来获取价格数据 当我让 python 脚本运行时 它最初会运行一段时间 几分钟 然后开始抛出异常 HTTP 错误 503 服务不可用
  • 箭头键变成 Telnet 中的控制字符

    我在 Ubuntu 终端中 并通过 telnet 连接到服务器 现在每当我输入 up 时 它就会变成 A 其他箭头键也变成控制字符 有没有办法可以运行 telnet 以便它理解我的箭头键 这将是一个巨大的帮助 因为我想在我的命令历史记录中向
  • PhantomJS 无法打开 HTTPS 站点

    我使用以下基于 loadspeed js 示例的代码来打开一个 https 站点 该站点也需要 http 服务器身份验证 var page require webpage create system require system t add
  • Scrapy 仅抓取每个页面的第一个结果

    我目前正在尝试运行以下代码 但它只保留每个页面的第一个结果 知道可能是什么问题吗 from scrapy contrib spiders import CrawlSpider Rule from scrapy contrib linkext
  • Watir 更改 Mozilla Firefox 首选项

    我正在使用 Watir 运行 Ruby 脚本来自动执行一些操作 我正在尝试自动将一些文件保存到某个目录 因此 在我的 Mozilla 设置中 我将默认下载目录设置为桌面并选择自动保存文件 然而 当我开始运行脚本时 这些更改并未反映出来 似乎
  • Urwid:使光标不可见

    我正在使用 urwid 它是一个用于在 ncurses 中设计终端用户界面的 Python 框架 但有一件事我在 urwid 中无法做到 而这在 Curses 中很容易做到 使光标不可见 现在 选择按钮时光标是可见的 而且看起来很丑 有办法
  • Android:UiTesting 时运行时错误

    我正在尝试运行 Ui 测试 每次运行应用程序时 它都会在控制台中出现以下错误并关闭正在运行的应用程序 我导入了 uiautomator jar android jar 和 JUnit4 库 我正在使用 Eclipse 我在这里缺少什么 20
  • Python - 使用 BeautifulSoup 从 URL 列表中抓取文本的最简单方法

    使用 BeautifulSoup 从几个网页 使用 URL 列表 中抓取文本的最简单方法是什么 有可能吗 最好的 乔治娜 import urllib2 import BeautifulSoup import re Newlines re c
  • 使用 javascript 从亚马逊 URL 中抓取 ASIN

    假设我有一个像这样的亚马逊产品 URL http www amazon com Kindle Wireless Reading Display Generation dp B0015T963C ref amb link 86123711 2
  • while 循环元素状态 cypress

    我有一个问题 我想单击一个按钮直到它消失 但次数可能会有所不同 所以我想检查可见性状态 当可见 true时单击按钮 当可见 false时结束测试 但问题是我不知道如何循环从获取元素到末尾的所有链 单击按钮一次 由于中断而停止 如果我删除中断

随机推荐