如何使用pywinauto读取Edit类UI控件中的文本内容
pywinauto 获取K-IDE终端富文本内容并保存的实现方案
前置说明
你已经通过py_inspect定位到目标富文本控件的前提下,可直接按以下步骤实现:
完整实现代码示例
# 导入pywinauto核心模块 from pywinauto import Application # 1. 连接到已运行的K-IDE进程 # 可替换为你实际的K-IDE窗口标题匹配规则,也可以用process参数指定进程ID app = Application(backend="win32").connect(title_re=".*K-IDE.*") # 2. 定位到目标富文本控件 # 请替换括号内的属性值为你在py_inspect中查到的对应控件属性 # 常用定位属性:class_name(控件类名)、control_id(控件ID)、control_type(控件类型) terminal_ctrl = app.window(title_re=".*终端.*").child_window( class_name="你查到的富文本控件类名", control_id=你查到的控件ID ) # 校验控件是否定位成功 if not terminal_ctrl.exists(timeout=3): raise Exception("目标富文本控件未找到,请检查定位属性是否正确") # 3. 获取rich_text属性内容 rich_content = terminal_ctrl.rich_text() # 如果你只需要纯文本内容不需要富文本格式,可替换为:rich_content = terminal_ctrl.text() # 4. 写入本地文本文件 with open("k_ide_terminal_response.txt", "w", encoding="utf-8") as f: f.write(rich_content)
常见问题排查
- 若调用
rich_text()返回空值:先打印terminal_ctrl.print_control_identifiers(),确认当前定位到的控件是否为你要找的目标控件 - 若提示控件无
rich_text属性:确认连接时backend参数是否设置为win32,如果用的是uia后端,可替换调用terminal_ctrl.text_block()获取内容 - 若保存的文件中文乱码:将
open方法的encoding参数替换为gbk重试,部分工业IDE默认使用gbk编码输出内容
内容的提问来源于stack exchange,提问作者Om Shridhar
相关产品推荐
相关产品推荐

