keyboard - pywinauto.keyboard.KeySequenceError: `}` 前面应该有 `{`
问题描述
有以下代码,它将生成的密码输出到命令行(使用打印命令)但是当我将生成的密码发送到密码文本框时,我得到了错误
pywinauto.keyboard.KeySequenceError:}
应该在前面{
app = Application(backend="uia").connect(title = "SKF Insight Rail Manager")
app.top_window().set_focus()
password = random.choice(string.ascii_lowercase)
password += random.choice(string.punctuation)
password += random.choice(string.ascii_uppercase)
password += random.choice(string.digits)
for i in range(4):
randomSource = string.ascii_letters + string.digits + string.punctuation
password += random.choice(randomSource)
解决方案
花括号是一种转义序列。您需要通过用{}
. 在您的情况下,它应该看起来像这样:
password = "{}}" # wrap by {} for send_keys
password += "{{}" # wrap by {} for send_keys
password += random.choice(string.digits)
password += random.choice(string.punctuation)
for i in range(4):
randomSource = string.ascii_letters + string.digits + string.punctuation
password += random.choice(randomSource)
# tricky replace is needed for human readable form of password
print("Generated password:" + password.replace('{}}', '}').replace('{{}', '{'))
time.sleep(1)
keyboard.send_keys(password)
关于 send_keys 的文档:https ://pywinauto.readthedocs.io/en/latest/code/pywinauto.keyboard.html
推荐阅读
- deep-learning - 如何基于姿势参数可视化 SMPL 模型的 3d 关节
- python - Python for 循环中的 MySQL 数据库查询时间慢
- selenium-webdriver - 对于销售团队的轻量级 Web 应用程序来说,现场级断言有多重要?
- c# - 冻结第二个选项卡上的窗格
- python - Python字典没有遍历所有元素
- thymeleaf - Thymeleaf 用服务器端的值替换属性变量
- json - 从 jsonschema 中另一个枚举值键的值派生属性名称
- javascript - 如何从被拒绝的承诺中“抛出”“捕获”方法以由外部“捕获”块处理?
- javascript - JQuery - DataTables - 在初始化期间无法分配 on() 方法
- react-native - 将信息从一个屏幕传递到另一个屏幕(使用功能组件)