2017-07-14 24 views
0

我写了一个非常简单的脚本所在的“Accept_Button”(这是一个按钮),然后使鼠标移动到它:当我运行一个python程序将关闭瞬间

import pyautogui 
x, y = pyautogui.locateCenterOnScreen('Accept_Button.png') 
pyautogui.moveTo(x, y) 

的问题是,该按钮并不总是在屏幕上(它只是偶尔出现),如果程序没有立即找到它,它会立即关闭。唯一的解决方法是当我用IDLE打开程序,然后手动点击运行或F5,但这种方式没有用。 提前谢谢!

编辑:

导入时间 进口pyautogui

而真: 的x,y = pyautogui.locateCenterOnScreen( 'Accept_Button.png') pyautogui.moveTo(X,Y)

这是新的脚本,工作正常,我只是不知道如何创建一个循环,当屏幕上没有按钮,程序需要等待它出现。

+1

python程序完成执行后,它是假设关闭。 – Rahul

+0

我认为问题在于脚本运行,因为你没有更多的事情要做,它显然没有任何作用。但它做到了,速度非常快。 – Ivan

+1

试着在最后加上一个'input()'来测试 – Ivan

回答

0

所以,如果你想为你的程序的简单重复循环,这里是一个在末端运行,然后几秒钟的延迟

import time 
import pyautogui 

while True 
    x, y = pyautogui.locateCenterOnScreen('Accept_Button.png') 
    pyautogui.moveTo(x, y) 
    time.sleep(seconds you want it to sleep) 

这将使图像位置的程序汽车无运行,直到你手动取消它。底部的time.sleep()方法意味着检测尝试之间会有延迟。

+0

'locateCenterOnScreen()'函数在失败时会返回'None',所以我认为最好循环(延迟),直到不是这样,然后执行'movetTo()'。 [documentation](http://pyautogui.readthedocs.io/en/latest/screenshot.html)也说它返回一个“4整数元组:(左,顶,宽,高)”,你需要找到传递给'moveTo()'的中心。 – martineau

+0

当程序确实找到按钮时,程序不会关闭,但是,我需要的是当图像不在屏幕上时继续循环,因此保持循环,直到出现'Accept_Button.png' –

相关问题