2017-07-14 63 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' –

相關問題