机械手获取Telnet连接的Telnet.Execute命令的输出

时间:2019-05-09 14:26:12

标签: python ssh robotframework telnet

我正在尝试获取Telnet.Execute Command的远程登录连接位于SSH连接内部。

如果我尝试${saida}= SSHLibrary.Execute Command ls可以得到ls命令的输出,但是如果我尝试${saida}= SSHLibrary.Execute Command Telnet.Execute Command dir可以得到dir [在{ {1}}]命令已传递给Telnet.Execute Command,但没有。

如何获取SSHLibrary.Execute Command的输出?

Telnet.Execute Command

1 个答案:

答案 0 :(得分:1)

从评论中:

  

我实现了在ssh连接中使用telnet,但是我想使用Telnet库

您不能这样做,有两个原因。

首先,Telnet库(我能想到的几乎所有RF库)都是为本地使用而设计的-当启动案例时,它在本地计算机和本地python解释器中实例化。您对其进行的所有调用(库)均在本地计算机上完成。
因此-它不会在通过ssh连接到的计算机上运行。

另一个原因是-Robot Framework不支持将“另一个关键字的返回值”作为参数传递;例如如果要执行此操作,则必须将另一个关键字的返回值存储在temp变量中,并将其传递给第一个关键字。
换句话说,在这一行:

SSHLibrary.Execute Command  Telnet.Open Connection  ${Other-Host}

,您实际上是在传递字符串“ Telnet.Open Connection”和值${Other-Host},您不是调用关键字Telnet.Open Connection