PyAutoGui对于locateOnScreen始终不返回任何内容

时间:2018-08-22 00:19:41

标签: python pyautogui

我的pyautogui始终不返回图像。图像与程序位于同一文件夹中。图像名称与我另存为的名称相同。这些图像是最新的,并且肯定在我的屏幕上。请帮助,pyautogui始终对locateOnScreen不返回任何内容。这是我的代码:

import time
import sys
import pyautogui

pyautogui.FAILSAFE = True
pyautogui.PAUSE = 1
pyautogui.size()

width, height = pyautogui.size()


y = pyautogui.locateOnScreen('LOLicon.png')
print(y)
for i in range(2):
    x = pyautogui.moveTo(y)
    pyautogui.click(x)
    time.sleep(2)
    pyautogui.doubleClick()

del x
del y

1 个答案:

答案 0 :(得分:0)

import time
import sys
import pyautogui

pyautogui.FAILSAFE = True
pyautogui.PAUSE = 1
pyautogui.size()

width, height = pyautogui.size()

y = pyautogui.locateOnScreen('LOLicon.png')
print(y)
for i in range(2):
    x = pyautogui.moveTo(y[0:2])
    pyautogui.click(x)
    time.sleep(2)
    pyautogui.doubleClick()

以上内容非常有效。唯一的代码更改是x = pyautogui.moveTo(y[0:2])

因此,请确保在运行脚本时图像确实在屏幕上(未被代码编辑器或其他窗口隐藏)和 LOLicon.png的图像内容实际上就是您所假设的

检查以下代码是否有帮助:

import pyautogui
im = pyautogui.screenshot(region=(20, 20, 50, 50)) 
im.save("myScreenshot.png")
y = pyautogui.locateOnScreen("myScreenshot.png")
print(y)
x = pyautogui.moveTo(y[0:2])

运行正常,没有错误。如果是这样,您可以将myScreenshot.png重命名为LOLicon.png并进行调整,region=(20, 20, 50, 50)使其在屏幕上捕获LOLicon。

https://pyautogui.readthedocs.io/en/latest/screenshot.html?highlight=save%20image中查看pyautogui中的屏幕截图功能的详细信息,并确保已安装必需的模块(如果您使用Linux,则安装Pillow并最终scrot)。