Python 3.x中PyAutoGUI输入@符号失败及邮件编写问题求助
解决PyAutoGUI无法输入@符号的问题
嘿,这个坑我之前踩过!你遇到的问题大概率是键盘布局不匹配导致的——PyAutoGUI的typewrite()方法默认是按照美式QWERTY键盘布局来模拟按键的,如果你用的是其他布局(比如法语AZERTY键盘,从你输入的gmx.fr来看很可能是这种情况),直接输入@字符就会失效,因为不同布局下输入@的按键组合完全不一样。
给你几个靠谱的解决方案:
1. 模拟对应键盘的@组合键
先确认你自己的键盘上是怎么打出@的:比如法语AZERTY键盘里,@是按住AltGr(右侧Alt键)再按G;美式键盘是Shift+2。找到对应的组合后,用hotkey()方法来模拟:
# 先定位并点击输入框 a, b, c, d = pyautogui.locateOnScreen('email.png') pyautogui.click(x=a, y=b, clicks=1, button='left') # 拆分输入,用hotkey插入@ pyautogui.typewrite('test') pyautogui.hotkey('altgr', 'g') # 这里换成你键盘对应的组合键 pyautogui.typewrite('gmx.fr')
2. 用复制粘贴的方式(最通用)
不管什么键盘布局,复制粘贴都不会出错,只需要借助pyperclip库来操作剪贴板:
import pyautogui import pyperclip # 定位点击输入框 a, b, c, d = pyautogui.locateOnScreen('email.png') pyautogui.click(x=a, y=b, clicks=1, button='left') # 复制目标文本到剪贴板,再粘贴 pyperclip.copy('test@gmx.fr') pyautogui.hotkey('ctrl', 'v') # macOS环境换成('command', 'v')
记得先安装pyperclip:pip install pyperclip
3. 直接输入Unicode字符
@的Unicode编码是U+0040,你也可以直接用转义字符输入:
pyautogui.typewrite('test' + '\x40' + 'gmx.fr')
不过这个方法在部分系统或输入法环境下可能依然有问题,优先级不如前两个方案。
内容的提问来源于stack exchange,提问作者SofianeHsn
相关产品推荐
相关产品推荐

