El objetivo de este tutorial es continuar el proyecto https ://1938.com.es/bot-click-python y unificar la automatización de tareas a través de clicks con la búsqueda de imágenes por pantalla en Python 3.
Podéis descargar el repositorio con el código de ejemplo del tutorial en la url https://github.com/al118345/Ejemplo_bot_python o el siguiente video:python -m pip install --upgrade pip
pip install -r requirements.txt
En caso de utilizar Linux y Python 3.7 ejecuta también el siguiente comando y te aparece un error NOTE: You must install tkinter on Linux to use MouseInfo. Run the following: sudo apt-get install python3-tk python3-dev
sudo apt-get install python3.7-tk
Otro detalle es que, si tu versión es 3.8 , la versión a instalar es python 3.8-tk. De no hacerlo, aparece un error # -*- coding: utf-8 -*-
from pynput.mouse import Button, Controller
import time
from screen_search import Search
mouse = Controller()
def click_raton_posicion (x,y):
mouse.position = (x, y)
print('Now we have moved it to {0}'.format(
mouse.position))
# Press and release
mouse.press(Button.left)
mouse.release(Button.left)
time.sleep(1)
def imagen():
search = Search("img/viewgrip_start.png")
pos = search.imagesearch()
print('dasda')
if pos[0] == -1:
return False
else:
return pos
while True:
coordenadas = imagen()
#si encuentro
if coordenadas!= False:
click_raton_posicion (coordenadas[0], coordenadas[1])
time.sleep(150)
Básicamente, tenemos un bucle infinito que, cada 150 segundos, busca la imagen en la pantalla cómo se muestra a continuación while True:
coordenadas = imagen()
#si encuentro
if coordenadas!= False:
click_raton_posicion (coordenadas[0], coordenadas[1])
time.sleep(150)
def imagen():
search = Search("img/viewgrip_start.png")
pos = search.imagesearch()
print('dasda')
if pos[0] == -1:
return False
else:
return pos
Por último, presionamos en las coordenadas con la siguiente función: mouse = Controller()
def click_raton_posicion (x,y):
mouse.position = (x, y)
print('Now we have moved it to {0}'.format(
mouse.position))
# Press and release
mouse.press(Button.left)
mouse.release(Button.left)
time.sleep(1)