最近使用python编写一个自动化测试工具,其中要自动打开文件对话框选择文件进行操作,但是使用SendMessage 发送消息填充ComboBox时填充的值无法显示 大概如下
# 找到指定标题的对话框,暂时不用管,自己封装的
b = SimpleWnd.get('打开', 'title')
# 找到文件路径输入框
h1 = b.get_child_handle_by_class('ComboBoxEx32')
h2 = win32gui.FindWindowEx(h1, None, 'ComboBox', None)
h3 = win32gui.FindWindowEx(h2, None, 'Edit', None)
print h1,h2,h3 # 值都是对的
# 填写路径,这里单步调试可以显示,直接运行不行
# 返回值为1
# 在其后加Sleep也不行
win32gui.SendMessage(h3, win32con.WM_SETTEXT, 0, '111111'.encode('gbk'))
# 这时候获取的值是对的,111111
buf_size = win32gui.SendMessage(h3, win32con.WM_GETTEXTLENGTH, 0, 0) + 1 # 要加上截尾的字节
str_buffer = win32gui.PyMakeBuffer(buf_size) # 生成buffer对象
win32api.SendMessage(h3, win32con.WM_GETTEXT, buf_size, str_buffer) # 获取buffer
str = str(str_buffer[:-1]) # 转为字符串
大神们,这是为什么,或者给个能实际运行的代码参考一下