Pyautogui无法移动实际鼠标指针

13
我一直在使用pyautogui时遇到问题。每次使用函数都能正常工作,但是它使用了一个“隐形”的鼠标指针。基本上,该模块不使用鼠标来点击事物,但它们仍然会被点击和拖动。以下是一个可视化的例子:
读取屏幕上的两个鼠标位置与预期相同: Position 1 Position 2 然而,当我试图将鼠标从第二个链接移回第一个链接时,鼠标本身并没有移动,但计算机认为它已经移动了。正如您在这里看到的那样,可视化鼠标位于链接2,而“隐形”鼠标位于链接1。您可以看到这一点,因为链接1有下划线,并且在终端中,pyautogui.position()返回链接1的坐标: enter image description here 使用pyautogui.click()会打开第一个链接: enter image description here 我已经尝试搜索解决此问题的答案,但似乎找不到任何答案。大多数人遇到的问题恰恰相反。他们希望能够自动化鼠标,同时也能正常使用它(即两个鼠标指针)。
为什么这是个问题?这绝对不是其他人想要的。通常情况下,几秒钟后,“隐形”鼠标会跳回可视化鼠标的位置。此外,在运行点击函数时,如果您移动了鼠标,“隐形”鼠标将返回可视化鼠标的位置。此外,由于可视化鼠标不移动,计算机会进入睡眠状态,这破坏了自动化的任何希望。另外,由于这个错误,任何相对鼠标移动都是不可能的,因为它只从可视化鼠标(静止的)相对移动。
我正在尝试运行的pyautogui脚本是游戏的机器人。以前它完美地工作,然后我从我的计算机上清除了Xubuntu并安装了Ubuntu。因此,这是一个在新安装的Ubuntu上出现的错误,只有一些小的更改。
我对Ubuntu安装的更改:
  • 我安装了GNOME桌面环境来代替默认的(我想是Unity?)。目前两者都已安装,但我只从登录屏幕中选择了GNOME
  • 我安装了gnome-tweaks工具,并将我的触摸板更改为区域模式,同时更改了我的窗口和鼠标指针的外观以制作一个暗色主题。
  • 对于Python脚本,我正在运行python3,并使用pip版本18.1。我安装了virtualenvwrapper并在其中安装了以下软件包:

.

$ pip freeze
numpy==1.15.4
opencv-python==3.4.3.18
Pillow==5.3.0
PyAutoGUI==0.9.38
PyMsgBox==1.0.6
PyScreeze==0.1.18
PyTweening==1.0.3
six==1.11.0
xlib==0.21

其余部分均为默认的Ubuntu 18.04.1 LTS。有人对我如何解决这个问题有任何想法吗?我会感激任何想法。

1个回答

3

我有一个类似的问题。对我来说,问题在于Wayland。切换到X后,它就可以工作了。因为你使用的是Ubuntu 18.04(默认启用Wayland),我认为这是同样的问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接