如何启动RDP并运行Selenium测试?

问题描述 投票:0回答:2

我收到了一个有趣的要求我的Selenium测试,我需要我的代码RDP到服务器,打开浏览器,然后运行我的测试。

最初我认为Browserstack甚至是Selenium Grid,但要求是实际打开RDP会话并通过它运行测试。

有没有办法实现这个目标?我想尝试使用像Microsoft UI Automation这样的东西来打开RDP会话但是我的Selenium测试只能在启动RDP后在本地运行,对吧?我在开始这方面遇到了一些麻烦,似乎无法找到一个好的起点。

c# selenium nunit rdp
2个回答
1
投票

RDP窗口基本上是桌面的图像,Selenium无法通过它控制Web浏览器。您需要在远程计算机上部署Selenium测试并从那里运行它们。


0
投票

这在理论上是可行的,但不完全按照您描述它的方式。您似乎在说您希望与RDP窗口内的事物进行交互,就好像RDP窗口是标准浏览器或本机应用程序一样,其中的内容是DOM中的元素。通过在主机上运行selenium,然后打开RDP,并在原始主机的RDP窗口中单击。

不可能直接通过RDP这样连接(以这种方法需要的方式)。如果没有其他原因而不是安全。例如;如果你曾经看过youtube上的人用疯狂的病毒感染虚拟机,以展示病毒对虚拟机的破坏性影响,而不会伤害他们从RDP进入的计算机。但似乎有办法通过RDP通过TCP连接进行通信,这将有助于其他方式与远程计算机进行交互。

此外,您可以将SSH / Enter-PSSession插入到计算机中,并在RDP会话之外的计算机之间建立通信通道。如果您在远程计算机上安装了自定义构建的应用程序,则可以使用System32库告诉主要机器x y坐标点击。然后,从主计算机,您可以最大化RDP窗口,并单击提供的X Y坐标。

我怀疑这会以你建议的方式成功地将点击一直发送到VM。如果Appium无法以这种方式发送单击,您可能需要开发自己的user32.dll抽象,以使用核心Windows逻辑进行键盘和鼠标点击。

总而言之,这是一个无可挑剔的深度项目,完成(看似)没有任何努力。通过调查我上面提到的一些事情(以及任何其他建议),并解释成本与投资回报,我会反击任何给你这个要求的人。

希望他们能够让您使用Selenium Grid与VM或连接的设备进行通信,以推出应用程序并根据行业标准方法对其进行测试。

这是一个有趣且相关的读物:https://superuser.com/questions/130552/tunneling-a-tcp-ip-connection-through-remote-desktop-connection

© www.soinside.com 2019 - 2024. All rights reserved.