You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PyAutoGUI write函数输入异常:QWERTZ键盘下+变为*的解决问询

PyAutoGUI非QWERTY键盘输入异常的解决方法

问题场景

使用PyAutoGUI向表单字段输入字符串时,部分特殊字符出现输入错误。示例代码如下:

user = "bjoern+admin"
user_pos = auth_fenster.left + 220, auth_fenster.top + 150
pyautogui.click(user_pos)
pyautogui.write(user, interval=0.05)

预期输入为bjoern+admin,但实际输入框显示为bjoern*admin。

问题原因

经排查,该问题源于使用QWERTZ键盘布局,PyAutoGUI的write()方法对非QWERTY键盘的特殊字符映射存在bug。切换为QWERTY键盘可正常工作,但这并非可行的长期解决方案。

可行的替代方案

通过剪贴板复制粘贴的方式绕过键盘映射问题,实现准确输入。具体实现代码如下:

import pyautogui
import pyperclip

def _workaround_write(text):
    """
    针对PyAutoGUI.write()在非QWERTY键盘下的bug的替代方案
    通过复制文本到剪贴板再粘贴,替代直接输入
    """
    pyperclip.copy(text)
    pyautogui.hotkey('ctrl', 'v')
    pyperclip.copy('')

# 测试对比
text_with_special_chars = '@/:;\\.ABCabc?!~^[]{}()'
pyautogui.write(text_with_special_chars) 
# 输出://;\.ABCabc?§¨[]5°      -> 异常

_workaround_write(text_with_special_chars) 
# 输出:@/:;\.ABCabc?!~^[]{}()       -> 正常 :)

该方法可稳定处理包含特殊字符的文本输入,此方案由GitHub用户setvisible提供。

内容的提问来源于stack exchange,提问作者Björn Trier

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 01:12:03