windows 桌面GUI自动化- 12.pywinauto 组合框控件ComboBox操作

发布时间 2023-08-24 13:03:19作者: 上海-悠悠

前言

pywinauto 组合框控件ComboBox操作

场景

记事本-另存为-编码选择,下图这种就是 组合框控件ComboBox

select 选择

官网给的教程是通过select 选择选项

示例

from pywinauto import Application


app = Application('uia').start("notepad.exe")
win = app.window(title_re="无标题 - 记事本")


# 输入内容
win.child_window(title="文本编辑器").set_text("hello world")


# 文件-另存为
win.menu_select('文件(F) -> 另存为(A)...')

# 操作弹出文件选择框
save_win = win.child_window(title="另存为", control_type="Window")

# select 选择ComboBox 选项
save_win.child_window(title="编码(E):", control_type="ComboBox").select("UTF-8")

虽然也能选成功,但是屏幕会闪烁3下

click_input() 点选项

另外一种解决方法思路是先点开选项,再选中里面的选项

from pywinauto import Application


app = Application('uia').start("notepad.exe")
win = app.window(title_re="无标题 - 记事本")


# 输入内容
win.child_window(title="文本编辑器").set_text("hello world")


# 文件-另存为
win.menu_select('文件(F) -> 另存为(A)...')

# 操作弹出文件选择框
save_win = win.child_window(title="另存为", control_type="Window")

# # select 选择ComboBox 选项
# save_win.child_window(title="编码(E):", control_type="ComboBox").select("UTF-8")
#

# 1.先点开选项
save_win.child_window(title="编码(E):", control_type="ComboBox").click_input()

# 2.选择内容
save_win.child_window(title="UTF-8", control_type="ListItem").click_input()

分2步操作更接近我们真实手工操作。