如何修复Python Pywinauto KeySequence错误

问题描述

我正在尝试在脚本中输入(Alt + Windows键)到我的应用程序。我定义了type_keys

def type_keys(string,element):

    """Type a string char by char to Element window"""

    for char in string:

        element.type_keys(char)

然后在保存期间调用它:

              # Save

              print("Saving")

              type_keys("%{VK_LWIN down}",win)

              #wait_win_ready(win)

              time.sleep(10)

              type_keys("1",win)

              win.wait("enabled",timeout = REFRESH_TIMEOUT)

我收到一个错误,似乎我的语法不正确-但不确定如何解决。

Saving

Traceback (most recent call last):

  File "c:\python36\lib\runpy.py",line 193,in _run_module_as_main

    "__main__",mod_spec)

  File "c:\python36\lib\runpy.py",line 85,in _run_code

    exec(code,run_globals)

  File "C:\Python36\Scripts\pbixrefresher.exe\__main__.py",line 9,in <module>

  File "c:\python36\lib\site-packages\pbixrefresher\pbixrefresher.py",line 67,in main

    type_keys("%{VK_LWIN down}",win)

  File "c:\python36\lib\site-packages\pbixrefresher\pbixrefresher.py",line 13,in type_keys

    element.type_keys(char)

  File "c:\python36\lib\site-packages\pywinauto\base_wrapper.py",line 971,in type_keys

    vk_packet)

  File "c:\python36\lib\site-packages\pywinauto\keyboard.py",line 710,in send_keys

    vk_packet=vk_packet)

  File "c:\python36\lib\site-packages\pywinauto\keyboard.py",line 621,in parse_keys

    raise KeySequenceError('`}` not found')

pywinauto.keyboard.KeySequenceError: `}` not found

希望为我收到此错误的原因提供帮助!感谢您的阅读。

解决方法

这是此行中的错字:type_keys("%{VK_LWIN down}",win)应该是element.type_keys("%{VK_LWIN down}")

问题是您对type_keys的实现将序列展开为如下所示:

element.type_keys("%")
element.type_keys("{") # fails here,absolutely expected!
element.type_keys("V")
element.type_keys("K")
element.type_keys("_")
element.type_keys("L")
element.type_keys("W")
element.type_keys("I")
element.type_keys("N")
element.type_keys(" ") # it won't be typed without param `with_spaces=True` (default is False)
element.type_keys("d")
element.type_keys("o")
element.type_keys("w")
element.type_keys("n")
element.type_keys("}")

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...