无法使用python和dogtail自动化远程程序,远程服务器中没有图形界面…

huwehgph  于 2023-05-16  发布在  Python
关注(0)|答案(2)|浏览(122)

我用python和dogtail(来自redhat的自动化程序)写了一段代码来自动化一个程序。此程序运行在没有桌面图形环境的虚拟机中。
我使用ssh命令运行虚拟机,然后在我的机器上启动程序和图形界面。然后我在我的机器上运行我的python程序来自动化这个程序。问题就在这里Python代码不工作,因为它不识别通过SSH运行的远程程序。如果我将python代码移动到虚拟机,它会要求我启用“辅助技术”,而我不能,因为我在虚拟机中没有gnome或任何图形环境?所有操作系统都是Ubuntu。我到处寻找解决办法,但没有成功。我希望我能把问题解释清楚,如果不能,请告诉我。请帮帮我...谢谢

sg3maiej

sg3maiej1#

在dogtail中有一个dogtail-run-headless-next二进制文件,它应该能够启动X(或者更准确地说是gdm服务)并登录(测试用户自动登录)。然后在桌面环境下执行其参数。
我们使用(在root下)sudo -u test dogtail-run-headless-next“./your_script”
我希望这也能使辅助技术成为可能。如果没有,您可以始终用途:if not isA11yEnabled():enableA11y(True)
你可以通过pexpect将ssh自动化到机器中。查看新的:http://pexpect.readthedocs.org/en/latest/api/pxssh.html
或更早版本:http://pexpect.sourceforge.net/pexpect.html

gupuwyp2

gupuwyp22#

一个现代的解决方案是通过X虚拟帧缓冲区命令运行脚本,如下所示

apt install xvfb
....
xvfb-run /path/to/script.py

现代Linux安全策略似乎不再允许dogtail-run-headless-next运行,因为脚本依赖于阅读所有/proc,这显然是一个安全隐患。

相关问题