Jump to content

Como clicar automaticamente em um botão em Python?


Postagens Recomendadas

Olá @Helio Henrique H. D. Costa, como é um sistema desktop né do proprio windows, você vai conseguir clickar na imagem utilizando a biblioteca PyAutoGUI. Segue função minha para isso:

1 - Tire um print recortado em .png da imagem 

2 - Na mesma pasta que está seu script .py crie uma pasta chamada 'imgs' e coloque a imagem .png la dentro.

3 - Chame a função no seu código assim: 

click_img('teste.png', conf=0.9)

4 - Função que deve ser adicionado ao seu código:

import pyautogui as p
import os

def click_img(img, pasta='imgs', conf=1.0, delay=1, timeout=20, button='left', clicks=1):
    img = os.path.join(pasta, img)
    try:
        aux = 0
        while True:
            box = p.locateCenterOnScreen(img, confidence=conf)
            if box:
                p.click(p.locateCenterOnScreen(img, confidence=conf), button=button, clicks=clicks)
                return True
            time.sleep(delay)
            if timeout < 0:
                continue
            if timeout == aux:
                break
            aux += 1
        else:
            return False
    except:
        return False

 

 

  • Curtir 1
Link to comment
Compartilhe em outros sites

Oi @Ryan Zimerman Leite tudo bem?

Obrigado pelo apoio.

 

Fiz o código abaixo como você descreveu:

from os import startfile
import pyautogui as p
import os


# Inicializa o lusrmgr.msc
startfile('C:/Windows/System32/lusrmgr.msc')

def click_img(img, pasta='h_usrs', conf=1.0, delay=1, timeout=20, button='left', clicks=1):
    img = os.path.join(pasta, img)
    try:
        aux = 0
        while True:
            box = p.locateCenterOnScreen(img, confidence=conf)
            if box:
                p.click(p.locateCenterOnScreen(img, confidence=conf), button=button, clicks=clicks)
                return True
            time.sleep(delay)
            if timeout < 0:
                continue
            if timeout == aux:
                break
            aux += 1
        else:
            return False
    except:
        return False

 

Coloquei dentro da mesma pasta que fica o .py, no caminho: C:\Users\hdcosta\PycharmProjects\PrimeiroTeste\.venv

A pasta h_imgs com a imagem h_usrs.PNG, como imagem abaixo:

image.png

image.png

 

Porém, quando rodo o .py ele só me traz ainda a tela abaixo:

image.png

Sem me trazer a árvore estendida da pasta Usuários que seria:

image.png

Tem ideia de onde possa estar meu erro?

Obrigado!

  • Curtir 1
Link to comment
Compartilhe em outros sites

Olá @Helio Henrique H. D. Costapelo seu codigo parece que voce não fez a chamada da função click_img, apenas adicionou a função.

Faltou isso no final do seu código: click_img('h_usrs.png', conf=0.9)

Também o import time

Segue abaixo seu codigo atualizado:

from os import startfile
import pyautogui as p
import os
import time


# Inicializa o lusrmgr.msc
startfile('C:/Windows/System32/lusrmgr.msc')

def click_img(img, pasta='h_usrs', conf=1.0, delay=1, timeout=20, button='left', clicks=1):
    img = os.path.join(pasta, img)
    try:
        aux = 0
        while True:
            box = p.locateCenterOnScreen(img, confidence=conf)
            if box:
                p.click(p.locateCenterOnScreen(img, confidence=conf), button=button, clicks=clicks)
                return True
            time.sleep(delay)
            if timeout < 0:
                continue
            if timeout == aux:
                break
            aux += 1
        else:
            return False
    except:
        return False

click_img('h_usrs.png', conf=0.9)

 

Editado por Ryan Zimerman Leite
  • Curtir 1
Link to comment
Compartilhe em outros sites

Crie uma conta ou entre para comentar 😀

Você precisa ser um membro para deixar um comentário.

Crie a sua conta

Participe da nossa comunidade, crie sua conta.
É bem rápido!

Criar minha conta agora

Entrar

Você já tem uma conta?
Faça o login agora.

Entrar agora


×
×
  • Create New...