我正在连接到远程计算机,如下所示 ssh 用户@主机 -Y
因此,如果我在 ssh 终端上运行应用程序,例如 gnome-calculator,它会按照我的意愿在我的本地屏幕上运行。到现在为止一切都很好。
但对于用例(UI 自动化),我需要访问 AT-SPI2 上该应用程序的元素。
即使应用程序在我的本地屏幕上运行,它也不会显示在加速器上。 (见附件)
D-Bus 通信不通过 X11;您需要单独转发相关的套接字。最近的 OpenSSH 版本支持 AF_UNIX 套接字转发。
ssh -L <localpath>:<remotepath> <server>
将本地侦听套接字转发到远程 D-Bus 套接字。据我所知,AT-SPI总线是通过会话总线调用来发现的,因此您可能需要重复上述过程两次:首先转发会话总线(使用$DBUS_SESSION_BUS_ADDRESS来确定其在远程系统上的路径),然后转发 AT-SPI 总线(通过会话总线调用发现其地址后)。