【问题标题】:PyAutoGui always returns none for locateOnScreenPyAutoGui 总是为 locateOnScreen 返回 none
【发布时间】:2018-08-24 17:54:28
【问题描述】:

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

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

【问题讨论】:

    标签: python pyautogui


    【解决方案1】:
    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)。

    【讨论】:

    • 当我尝试运行它时它仍然显示:无 Traceback(最近一次调用最后一次):文件“C:\Python\Projects\LOLsignin.py”,第 15 行,在 x = pyautogui.moveTo(y[0:2]) TypeError: 'NoneType' object is not subscriptable
    • 请查看更新后的答案并尝试提供的更多代码。
    • 已修复!谢谢!
    猜你喜欢
    • 2017-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-14
    • 2015-12-21
    相关资源
    最近更新 更多