问题描述
我正在尝试在脚本中输入(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("}")