我在Python和Google Cloud VM上进行了一定数量的Selenium测试,并能够通过RDP进行连接。
我希望能够在没有活动RDP会话的情况下运行测试。目前,当我尝试在关闭的会话中运行自动化时,我会收到一个错误,因为没有显示(当尝试对屏幕进行屏幕截图时,它清晰可见-它适用于活动会话,但不适用于非活动会话)。
我已经试过了:
- 我试过创建一个虚拟显示,但它没有帮助。
- 我还尝试使用RDP 2打开到机器的RDP会话,然后关闭RDP 2会话,但这也没有帮助。
附加信息:当我尝试使用基于Java的selenium的相同方法时,所有工作都很好,awt屏幕截图也很好。我不明白为什么基于Java的Selenium测试在没有活动RDP会话的情况下工作得很好,而基于Python的却不行
我怎么能绕过它?
1条答案
按热度按时间rdlzhqv91#
我还没有尝试做你所要求的,但我已经尝试做一些类似的事情-即,在Windows上运行Python自动化的东西,而不需要一直登录到远程桌面,虽然我不确定我已经完全解决了这个问题,也许这会有所帮助。我这样做了:
1.在目标计算机上创建第二个帐户(如果还不存在)
1.在目标机器上安装TightVNC(我想要RDP到的机器),设置为连接到RDP会话。
1.在我想要RDP FROM的机器上安装一个VNC查看器,可能没有关系,但我使用了RemoteRipple,因为它也是免费和轻量级的。
1.使用通常的Windows RDP界面登录到远程计算机,但登录到与目标帐户不同的帐户,可能是在步骤1中创建的帐户。
1.通过VNC连接-尽管实际上我不认为这有多大关系,如果你连接早,只是让它打开。VNC窗口现在应该显示通常的Windows登录屏幕-您应该能够使用它登录到您实际想要登录的帐户。此时,RDP会话将提示您断开连接,因为另一个用户正在尝试登录-当它断开连接时,VNC连接将保持活动状态,您可以随意断开并重新连接到它,在我的情况下似乎不会影响Clicknium自动化的运行,尽管我确信Selenium是一样的。
同样,我不认为这是一个理想的解决方案,但希望现在能工作得足够好。