我开始学习 PyAutoGui,我正在阅读文档并观看教程。目前,我只是尝试获取鼠标在屏幕上的位置,但无论我如何移动鼠标,它都会不断重复相同的坐标。 这篇文章有类似的问题,但从未得到解答。 这篇文章也有类似的问题,但解决方案对我不起作用。
根据文档(和其他堆栈溢出帖子),获取鼠标逐秒 X-Y 位置的正确代码是:
import pyautogui
import time
print(pyautogui.size())
while True:
print (pyautogui.position())
time.sleep(1)
打印输出如下所示:
Size(width=3840, height=1080)
Point(x=70, y=250)
Point(x=70, y=250)
Point(x=70, y=250)
Point(x=70, y=250)
Point(x=70, y=250)
Point(x=70, y=250)
Point(x=70, y=250)
Point(x=70, y=250)
Point(x=70, y=250)
无论我如何移动鼠标,X/70 Y/250 点都会重复到无穷大。我为此使用 VSCode 和 WSL2。重新启动、卸载和重新安装模块似乎也没有帮助。任何指导将不胜感激,谢谢!
我应该提到这个替代解决方案,实现回车符,也不起作用(如下),displayMousePosition()方法也不起作用
while True:
try:
x, y = pyautogui.position()
positionStr = 'X: ' + str(x).rjust(4) + ' Y: ' + str(y).rjust(4)
print(positionStr, end=' ')
print('\b' * (len(positionStr) + 1), end='')
except KeyboardInterrupt:
print('\nDone')
break
已解决:我在 PC 上使用 WSL 运行此程序。事实证明,GUI 自动化库不能在 Linux 子系统中运行,而是需要在本机 Windows 环境中运行(即 Windows 用户使用 powershell,而不是 ubuntu/WSL)。
我遇到了同样的错误,并且无法在库中找到解决方案。因此,我寻求的解决方案是手动拍摄显示器的完整屏幕截图,然后将屏幕截图导入 MS Paint 中,并记下 MS Paint 中图片中特定位置的 (x, y) 坐标
示例图像。矩形区域显示坐标aint。