Responder dúvida

Seja o primeiro a responder

Não consigo pegar a variável de um entry

Python Básico Função funções Programação Orientada a Objetos TKinter BotCity

Tenho um projeto em Python que utiliza o template do BotCity para automatização.

E também tenho um script onde tenho uma tela feita com TKinter com 2 entrys e, no script do bot eu preciso pegar o valor que é digitado nesses "Entrys" para executar uma automação depois de apertar um botão na janela, porém depois de algumas tentativas diferentes e ter pesquisado não consegui fazer funcionar. Além de eu não conseguir pegar o valor dos entrys, parece que está executando a parte para abrir a interface gráfica 2 vezes, uma quando eu de fato executo e ela tem que aparecer, mas quando aperto o botão para executar a automação, ele abre uma outra janela de interface gráfica.

Gostaria de saber como é feita essa relação para eu pegar o valor de um entry que está em um script diferente e porque a interface gráfica está abrindo também quando aperto o botão. Sou novo na linguagem python.

Abaixo está o código do bot.py (não tem nada programado neste script, apenas tentando fazer funcionar)

from botcity.core import DesktopBot
import Tela_login


class Bot(DesktopBot):
def action(self, execution=None):

usuario = Tela_login.e_usuario.get()
senha = Tela_login.e_senha.get()


self.browse("http://www.google.com")
self.wait(5000)
self.paste(usuario)



def not_found(self, label):
print(f"Element not found: {label}")


if __name__ == '__main__':
Bot.main()

E abaixo está o código do Tela_login.py (basicamente só programei a tela)

from tkinter import *
from tkinter import Tk, ttk


# cores ---------------------------------------------------------------------------------
co0 = "#f0f3f5" # Preto
co1 = "#feffff" # Branco
co2 = "#3fb5a3" # Verde
co3 = "#38576b" # valor
co4 = "#403d3d" # letra


def TesteTeste():
exec(open('bot.py').read())


# Criando a janela -----------------------------------------
janela = Tk()
janela.title('')
janela.geometry('310x300')
janela.configure(background=co1)
janela.resizable(width=False, height=False)



# Dividindo a janela ----------------------------------------------------------------------
frame_cima = Frame(janela, width=310, height=50, bg=co1, relief='flat')
frame_cima.grid(row=0, column=0, pady=1, padx=0, sticky=NSEW)

frame_baixo = Frame(janela, width=310, height=250, bg=co1, relief='flat')
frame_baixo.grid(row=1, column=0, pady=1, padx=0, sticky=NSEW)



# Configurando o frame cima ---------------------------------------------------------------
l_nome = Label(frame_cima, text='Teste', anchor=NE, font=('Ivy 19'), bg=co1, fg=co4)
l_nome.place(x=5, y=5)

l_linha = Label(frame_cima, text=' ', width=275, anchor=NW, font=('Ivy 1'), bg="#8B0000", fg=co4)
l_linha.place(x=10, y=45)



# Configurando o frame baixo ---------------------------------------------------------------
l_usuario = Label(frame_baixo, text='Usuário *', anchor=NW, font=('Ivy 10'), bg=co1, fg=co4)
l_usuario.place(x=10, y=20)
e_usuario = Entry(frame_baixo, width=34, justify='left', font=("", 11), highlightthickness=1, relief='solid')
e_usuario.place(x=11, y=40)

l_senha = Label(frame_baixo, text='Senha *', anchor=NW, font=('Ivy 10'), bg=co1, fg=co4)
l_senha.place(x=10, y=80)
e_senha = Entry(frame_baixo, width=34, justify='left', font=("", 11), show="*", highlightthickness=1, relief='solid')
e_senha.place(x=11, y=100)

b_executar = Button(frame_baixo, text='Executar', width=39, height=2, font=('Ivy 8 bold'), bg=co2, fg=co1, relief=RAISED, overrelief=RIDGE, command=TesteTeste)
b_executar.place(x=10, y=180)


janela.mainloop()
 
Foto de Robson P.
Robson perguntou há 2 anos