解决方案AT-SPI
AT-SPI(Assistive Technology Service Provider Interface)是由GNOME项目开发的,它提供了应用程序界面/内容的一个逻辑性的表现。
可以用于辅助残疾人士来浏览/interact应用程序,也可以用于用户界面的自动化测试(例如Linux Desktop Testing Project and Dogtail)
lib接口类型
- Atspi.Action
- Atspi.Collection
- Atspi.Component
- Atspi.Document
- Atspi.EditableText
- Atspi.Hypertext
- Atspi.Image
- Atspi.Selection
- Atspi.Table
- Atspi.TableCell
- Atspi.Text
- Atspi.Value
相关帮助文档
Atspi.Selection - Interfaces - Atspi 2.0
如何抓取待测对象元素
sudo apt-get update
sudo apt-get install accerciser
遇到的问题
无法抓取QT应用的元素
解决方案
- 安装OCR
sudo apt-get install -y orca
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
下列软件包是自动安装的并且现在不需要了:
archdetect-deb cryptsetup cryptsetup-bin libdebian-installer4 libyaml-cpp0.6
localechooser-data user-setup
使用'sudo apt autoremove'来卸载它(它们)。
将会同时安装下列软件:
gir1.2-gstreamer-1.0 libbrlapi0.7 libdotconf0 liblouis-data liblouis20
libspeechd2 python3-brlapi python3-louis python3-speechd speech-dispatcher
speech-dispatcher-audio-plugins
建议安装:
python3-gst-1.0 libttspico-utils espeak mbrola speech-dispatcher-doc-cs
speech-dispatcher-festival speech-dispatcher-cicero speech-dispatcher-flite
speech-dispatcher-espeak
推荐安装:
xbrlapi gstreamer0.10-plugins-base speech-dispatcher-espeak-ng sound-icons
下列【新】软件包将被安装:
gir1.2-gstreamer-1.0 libbrlapi0.7 libdotconf0 liblouis-data liblouis20
libspeechd2 orca python3-brlapi python3-louis python3-speechd
speech-dispatcher speech-dispatcher-audio-plugins
升级了 0 个软件包,新安装了 12 个软件包,要卸载 0 个软件包,有 391 个软件包未被升级。
需要下载 5,474 kB 的归档。
解压缩后会消耗 27.3 MB 的额外空间。
获取:1 http://archive.kylinos.cn/kylin/KYLIN-ALL 10.1/main amd64 gir1.2-gstreamer-1.0 amd64 1.16.2-2kylin0k2 [1,188 kB]
获取:2 http://archive.kylinos.cn/kylin/KYLIN-ALL 10.1/main amd64 libbrlapi0.7 amd64 6.0+dfsg-4kylin6 [97.4 kB]
获取:3 http://archive.kylinos.cn/kylin/KYLIN-ALL 10.1/main amd64 libdotconf0 amd64 1.3-0.3fakesync1 [16.4 kB]
获取:4 http://archive.kylinos.cn/kylin/KYLIN-ALL 10.1/main amd64 liblouis-data all 3.12.0-3 [1,629 kB]
获取:5 http://archive.kylinos.cn/kylin/KYLIN-ALL 10.1/main amd64 liblouis20 amd64 3.12.0-3 [77.7 kB]
获取:6 http://archive.kylinos.cn/kylin/KYLIN-ALL 10.1/main amd64 libspeechd2 amd64 0.9.1-4 [29.0 kB]
获取:7 http://archive.kylinos.cn/kylin/KYLIN-ALL 10.1/main amd64 python3-brlapi amd64 6.0+dfsg-4kylin6 [152 kB]
获取:8 http://archive.kylinos.cn/kylin/KYLIN-ALL 10.1/main amd64 python3-louis all 3.12.0-3 [14.1 kB]
获取:9 http://archive.kylinos.cn/kylin/KYLIN-ALL 10.1/main amd64 python3-speechd all 0.9.1-4 [52.0 kB]
获取:10 http://archive.kylinos.cn/kylin/KYLIN-ALL 10.1/main amd64 speech-dispatcher-audio-plugins amd64 0.9.1-4 [34.7 kB]
获取:11 http://archive.kylinos.cn/kylin/KYLIN-ALL 10.1/main amd64 speech-dispatcher amd64 0.9.1-4 [505 kB]
获取:12 http://archive.kylinos.cn/kylin/KYLIN-ALL 10.1/main amd64 orca all 3.36.1-0kylin1 [1,680 kB]
已下载 5,474 kB,耗时 15秒 (365 kB/s)
正在选中未选择的软件包 gir1.2-gstreamer-1.0:amd64。
(正在读取数据库 ... 系统当前共安装有 218619 个文件和目录。)
准备解压 .../00-gir1.2-gstreamer-1.0_1.16.2-2kylin0k2_amd64.deb ...
正在解压 gir1.2-gstreamer-1.0:amd64 (1.16.2-2kylin0k2) ...
正在选中未选择的软件包 libbrlapi0.7:amd64。
准备解压 .../01-libbrlapi0.7_6.0+dfsg-4kylin6_amd64.deb ...
正在解压 libbrlapi0.7:amd64 (6.0+dfsg-4kylin6) ...
正在选中未选择的软件包 libdotconf0:amd64。
准备解压 .../02-libdotconf0_1.3-0.3fakesync1_amd64.deb ...
正在解压 libdotconf0:amd64 (1.3-0.3fakesync1) ...
正在选中未选择的软件包 liblouis-data。
准备解压 .../03-liblouis-data_3.12.0-3_all.deb ...
正在解压 liblouis-data (3.12.0-3) ...
正在选中未选择的软件包 liblouis20:amd64。
准备解压 .../04-liblouis20_3.12.0-3_amd64.deb ...
正在解压 liblouis20:amd64 (3.12.0-3) ...
正在选中未选择的软件包 libspeechd2:amd64。
准备解压 .../05-libspeechd2_0.9.1-4_amd64.deb ...
正在解压 libspeechd2:amd64 (0.9.1-4) ...
正在选中未选择的软件包 python3-brlapi:amd64。
准备解压 .../06-python3-brlapi_6.0+dfsg-4kylin6_amd64.deb ...
正在解压 python3-brlapi:amd64 (6.0+dfsg-4kylin6) ...
正在选中未选择的软件包 python3-louis。
准备解压 .../07-python3-louis_3.12.0-3_all.deb ...
正在解压 python3-louis (3.12.0-3) ...
正在选中未选择的软件包 python3-speechd。
准备解压 .../08-python3-speechd_0.9.1-4_all.deb ...
正在解压 python3-speechd (0.9.1-4) ...
正在选中未选择的软件包 speech-dispatcher-audio-plugins:amd64。
准备解压 .../09-speech-dispatcher-audio-plugins_0.9.1-4_amd64.deb ...
正在解压 speech-dispatcher-audio-plugins:amd64 (0.9.1-4) ...
正在选中未选择的软件包 speech-dispatcher。
准备解压 .../10-speech-dispatcher_0.9.1-4_amd64.deb ...
正在解压 speech-dispatcher (0.9.1-4) ...
正在选中未选择的软件包 orca。
准备解压 .../11-orca_3.36.1-0kylin1_all.deb ...
正在解压 orca (3.36.1-0kylin1) ...
正在设置 libbrlapi0.7:amd64 (6.0+dfsg-4kylin6) ...
正在设置 speech-dispatcher-audio-plugins:amd64 (0.9.1-4) ...
正在设置 gir1.2-gstreamer-1.0:amd64 (1.16.2-2kylin0k2) ...
正在设置 python3-speechd (0.9.1-4) ...
正在设置 libspeechd2:amd64 (0.9.1-4) ...
正在设置 liblouis-data (3.12.0-3) ...
正在设置 python3-brlapi:amd64 (6.0+dfsg-4kylin6) ...
正在设置 libdotconf0:amd64 (1.3-0.3fakesync1) ...
正在设置 liblouis20:amd64 (3.12.0-3) ...
正在设置 speech-dispatcher (0.9.1-4) ...
正在设置 python3-louis (3.12.0-3) ...
正在设置 orca (3.36.1-0kylin1) ...
正在处理用于 hicolor-icon-theme (0.17-2) 的触发器 ...
正在处理用于 libc-bin (2.31-0kylin9.2) 的触发器 ...
正在处理用于 systemd (245.4-4kylin3k6) 的触发器 ...
正在处理用于 man-db (2.9.1-1kylin0k1) 的触发器 ...
正在处理用于 install-info (6.7.0.dfsg.2-5kylin0k2~rc1) 的触发器 ...
- 启动Accessibility
from gi.repository import Gio, GLib
#函数功能:启用或关闭Accessibility
def setAccessibility(value):
try:
_proxy = Gio.DBusProxy.new_for_bus_sync(
Gio.BusType.SESSION,
Gio.DBusProxyFlags.NONE,
None,
'org.a11y.Bus',
'/org/a11y/bus',
'org.freedesktop.DBus.Properties',
None)
except:
_proxy = None
if not _proxy:
print("NO")
exit()
else:
vEnable = GLib.Variant('b', value)
_proxy.Set('(ssv)', 'org.a11y.Status', 'IsEnabled', vEnable)
print("OK")
setAccessibility(True)