key を押す (key)
指定したキーを押す
key.py
# ctrl と a を同時押し
pyautogui.hotkey('ctrl', 'a')
# 上記の後に e を押す
time.sleep(0.5)
pyautogui.press("e")
スリープ (sleep)
処理の間に1.2秒のスリープ
sleep.py
time.sleep(1.2)
画像を探す (img)
opencv インスコ必須
grayscale = True で高速化
confidence= 0.9 で曖昧検索
img.py
# 画像があるか探す
img = pyautogui.locateCenterOnScreen('your.png', grayscale=True, confidence=0.9)
if img:
# 画像があれば、中心をクリック
pyautogui.click(img.x,img.y)
# 画像の位置まで0.5-2秒使い移動させクリック
pyautogui.moveTo(img.x,img.y, random.uniform(0.5, 2), pyautogui.easeInQuad)
pyautogui.click()
すべての画像を探す
わかりやすく、座標をx,yに変換。
その後順に画像をクリックしていく。
imgall.py
imgs = list(pyautogui.locateAllOnScreen('firefox-plus.png', grayscale=True, confidence=0.9))
centers = [pyautogui.center(v) for v in imgs]
i = 0
while i < len(centers):
pyautogui.moveTo(centers[i].x,centers[i].y,random.uniform(0.5, 2), pyautogui.easeInQuad)
pyautogui.click()
i += 1
クリック (click)
click.py
# クリック
pyautogui.click()
# 右クリック
pyautogui.rightClick()
ランダム (rand)
random.py
# ランダムで整数を取得
random_int = random.randint(0, 9)
# ランダムで少数以下も取得
random.uniform(0.6, 1.5)
# 配列からランダムで一つ取得
urls = [
'https://yahoo.co.jp',
'https://google.co.jp',
'https://qiita.com/'
]
rand_url = random.choice(urls)
例外処理 (try)
try.py
try:
# 画像をクリックする
pyautogui.click('button.png')
except Exception as e:
# ここで、キャプチャが出たかどうかを調べるのも良いかも
print(f'エラー発生 red: {str(e)}. Exiting...')
最後に
位置情報の注意
locateCenterOnscreen の時は
x , y になる
locateOnscreen の 時は
left , top
わかりづらいので、locateCenterOnscreen
に統一したほうが良い