如何在Pywinauto中将窗口的Control标识符打印到文档

时间:2010-06-14 06:44:49

标签: pywinauto

我正在尝试使用Pywinauto自动安装应用程序。在安装过程中,最后一个窗口会在少数情况下显示一些警告或错误消息,之后系统开始重新启动。我的目标是捕获

可能出现的警告消息
app.top_window_()._ctrl_identifiers()
np.Notepad.Edit.TypeKeys(a,with_spaces=True, with_tabs=True, with_newlines=True)

这将返回一个包含屏幕所有消息的列表。 第二行是我试图在记事本中打印列表对象的地方,但它会抛出一些例外

Traceback (most recent call last):
  File "<pyshell#37>", line 1, in <module>
    np.Notepad.Edit.TypeKeys(a,with_spaces=True, with_tabs=True, with_newlines=True)
  File "C:\Python26\pywinauto\controls\HwndWrapper.py", line 950, in TypeKeys
    turn_off_numlock)
  File "C:\Python26\pywinauto\SendKeysCtypes.py", line 629, in SendKeys
    keys = parse_keys(keys, with_spaces, with_tabs, with_newlines)
  File "C:\Python26\pywinauto\SendKeysCtypes.py", line 538, in parse_keys
    c = string[index]
KeyError: 0

有人能让我知道如何做到这一点,或者是否有其他方式可以用一个例子来处理?

1 个答案:

答案 0 :(得分:0)

重新格式化::

app.top_window_()._ctrl_identifiers()  # did you mean print_control_identifiers() ?
np.Notepad.Edit.TypeKeys(a,with_spaces=True, with_tabs=True, with_newlines=True)

回溯

Traceback (most recent call last): 
File "", line 1, in 
    np.Notepad.Edit.TypeKeys(a,with_spaces=True, with_tabs=True, with_newlines=True) 
File "C:\Python26\pywinauto\controls\HwndWrapper.py", line 950, in TypeKeys 
    turn_off_numlock) 
File "C:\Python26\pywinauto\SendKeysCtypes.py", line 629, in SendKeys 
    keys = parse_keys(keys, with_spaces, with_tabs, with_newlines) 
File "C:\Python26\pywinauto\SendKeysCtypes.py", line 538, in parse_keys 
    c = string[index] KeyError: 0

您没有解释第二行中a包含的内容,但看起来您传递的是字典而不是字符串。 SendKeys()需要一个字符串。

希望有所帮助