И еще, как можно определить, что браузер закрыт? Программа продолжает управлять курсором и вне игры.
from PIL import ImageGrab import numpy as np #import os import time from selenium import webdriver import win32api, win32con box=(0,799,1920,800) #устанавливает область для наблюдения по ширине экрана высотой 1 пиксель driver = webdriver.Chrome() def screen(): im=ImageGrab.grab(box) #im.save(os.getcwd() + '\\Catch_snap_' + str(int(time.time())) + '.png','PNG') def openWindow(): # открывает браузер и запускает игру driver.get("https://www.divan.ru/vladimir/category/stok-mebeli/page-6") driver.maximize_window() mousePos((1920//2,1080//2+50)) #запускает игру leftClick() #(расчитано на разрешение 1920x1080) def mousePos(cord): win32api.SetCursorPos(cord) def leftClick(): win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN,0,0) time.sleep(.1) win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP,0,0) #print "Click." #completely optional. But nice for debugging purposes. def main(): openWindow() #запуск игры while 1: im=ImageGrab.grab(box) #считывает область экрана высотой 1 пиксель arr = np.array(im); #преобразует в массив t= next((i for i, a in enumerate(arr[0][51::50]) if sum(a)<765), None) #ищет первый пиксель в массиве не белого цвета с шагом 50 пикселей (половина ширины подушки) #и получает номер шага на котором был найден пиксель if t: # если найден такой пиксель #screen() win32api.SetCursorPos((t*50,800)) #преобразует шаг в координату пикселя и перемещает туда курсор if __name__ == '__main__': main()