gpt4 book ai didi

user-interface - 从 X11 GUI 中提取文本?

转载 作者:行者123 更新时间:2023-11-28 21:14:34 25 4
gpt4 key购买 nike

我有一个用 Perl/Tk 编写的销售点应用程序。我使用 X11::GUITest 对其进行自动化测试,通过绑定(bind)到按钮和其他小部件的热键驱动应用程序(通常是触摸屏驱动)。然而,X11::GUITest 没有办法从屏幕上“读取”文本,所以我求助于增强应用程序来写入临时文件以及将数据放在屏幕上。然后测试脚本查看临时文件,而不是 GUI。但我喜欢扩展 X11::GUITest 或制作一个新的 CPAN 模块,可以从 X11 GUI 中抓取文本字符串。我不是在进行图形到文本的转换;据我(微弱的)理解,在 X 窗口系统的深处,标签文本等被存储为文本字符串,并在管道后期呈现为位图形式(?)。

任何人都对如何执行此操作有指导,或从哪里开始的指示?

是的,我知道我应该坚持更好的 MVC 分离,而不是在 GUI 级别进行实际测试,而是在它下面进行测试;然而现实阻碍了它,它就是这样!

最佳答案

做到这一点的最佳方法是让您的程序使用像 ATK 这样的辅助功能框架。 (在 GTK 应用程序中使用)然后使用它来查询字符串,因为屏幕阅读器必须进行文本到语音的翻译。这是 Linux Desktop Testing Project 采取的方法和 dogtail测试框架。您可以使用现有的、经过良好测试的代码并使您的应用程序更适合残障用户使用(这可能是美国的《美国残疾人法案》和许多其他国家/地区的类似法律等法律所要求的)。

如果您的应用程序使用现代字体框架,如 libXft2,这可能是您唯一的选择,因为这些字符串仅在客户端应用程序中,而不是 X 服务器中,并且字符到像素图的转换是在客户端完成的。 (如果你的文本是抗锯齿的,它必须使用这些而不是旧的 X11 API。)

即使使用遗留的 X11 API,一旦完成文本到位图的转换,X 服务器也不会存储字符串,因此在这种情况下,除了拦截它们之外,没有好的方法来查询它们。

关于user-interface - 从 X11 GUI 中提取文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7019167/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com