tudo bem?
Estou atualmente realizando um bot para fins didáticos.
Estou utilizando a biblioteca pySIMPLE GUI para realizar a interface e a biblioteca selenium para requisitar os elementos web.
O que está ocorrendo:
- Quando eu utilizo a função do bot dentro do loop do pySimple GUI a interface simplesmente para de responder. ( O código até que funciona, no entanto, a interface de saída para visualizar os comentários trava e muitas das vezes tenho que fechar)

O código da minha interface é:
import PySimpleGUI as sg
def janela_login():
sg.theme('reddit')
layout = (
(sg.Text('BOT PARA INSTAGRAM')),
(sg.Text('Usuário: ' ), sg.Input(size=(20,1), key ='username')),
(sg.Text('Senha: '), sg.Input(password_char="*",size=(20,1), key = 'password')),
(sg.Text('Link: '), sg.Input(size=(30,1),key = 'link')),
(sg.Button('Entrar na conta', key = 'btn_login'))
)
return sg.Window('login', layout = layout, finalize = True)
def janela_saida():
sg.theme('reddit')
layout = (
(sg.Text('BOT PARA INSTAGRAM')),
(sg.Output(size=(50,20)))
)
return sg.Window('BOT', layout = layout, finalize = True)
janela1,janela2 = janela_login(),None
while True:
window,event,values = sg.read_all_windows(timeout=10000)
if window == janela1 and event == sg.WIN_CLOSED:
break
if window == janela1 and event =='btn_login':
if values('username') == " " or values('password') == "" or values('link') == "":
sg.popup('Por favor, digite os campos informados')
else:
janela1.hide()
janela2 = janela_saida()
driver = webdriver.Chrome(ChromeDriverManager().install())
Já o código do bot é:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.common.keys import Keys
import time
import sys
import getpass
import random
driver = webdriver.Chrome(ChromeDriverManager().install())
driver.get(values('link'))
btn_entrar = driver.find_element_by_xpath("//*(@id='react-root')/section/nav/div(2)/div/div/div(3)/div/span/a(1)")
btn_entrar.click()
time.sleep(3)
campo_username = driver.find_element_by_xpath("//*(@id='loginForm')/div/div(1)/div/label/input")
campo_username.send_keys(values('username'))
time.sleep(2)
campo_senha = driver.find_element_by_xpath("//*(@id='loginForm')/div/div(2)/div/label/input")
campo_senha.send_keys(values('password'))
campo_senha.send_keys(Keys.ENTER)
time.sleep(10)
agora_não = driver.find_element_by_class_name('cmbtv')
print("Element is visible? " + str(agora_não.is_displayed()))
time.sleep(1)
agora_não.click()
time.sleep(3)
javascript = """
var elm = arguments(0), txt = arguments(1);
elm.value += txt;
elm.dispatchEvent(new Event('change'));
"""
contador = 0
while contador < 1500:
if(contador % 23 == 0 ):
driver.refresh()
for remaining in range(3400, 0, -1):
print('r ' ,remaining,'segundos para publicar o próximo comentário ', end=' ' )
sys.stdout.flush()
time.sleep(1)
for remaining in range(35, 0, -1):
print('r ' ,remaining,' segundos para publicar o próximo comentário ', end=' ' )
sys.stdout.flush()
time.sleep(1)
msg = ("U0001F39E","U0001F3A5","U0001F3AC","U0001F3EE","U0001F3F7","U0001F400","U0001F401","U0001F402","U0001F403","U0001F404","U0001F405","U0001F406","U0001F407","U0001F408","U0001F40E","U0001F40F","U0001F410","U0001F411","U0001F412","U0001F413","U0001F414","U0001F415","U0001F416","U0001F417","U0001F418","U0001F423","U0001F424","U0001F425","U0001F426","U0001F427","U0001F428","U0001F429","U0001F42A","U0001F42B","U0001F42D","U0001F42E","U0001F42F","U0001F430","U0001F431","U0001F434","U0001F435","U0001F436","U0001F437","U0001F439","U0001F43A","U0001F43B","U0001F43C","U0001F43D","U0001F43E","U0001F43F","U0001F479","U0001F47A","U0001F47B","U0001F47D","U0001F47E","U0001F47F","U0001F480","U0001F4A1","U0001F4A9","U0001F4B0","U0001F4B3","U0001F4B4","U0001F4B5","U0001F4B6","U0001F4B7","U0001F4B8","U0001F4B9","U0001F4BB","U0001F4BD","U0001F4BE","U0001F4BF","U0001F4C0","U0001F4C3","U0001F4C4","U0001F4D1","U0001F4D2","U0001F4D3","U0001F4D4","U0001F4D5","U0001F4D6","U0001F4D7","U0001F4D8","U0001F4D9","U0001F4DA","U0001F4DC","U0001F4DE","U0001F4DF","U0001F4E0","U0001F4E4","U0001F4E5","U0001F4E6","U0001F4E7","U0001F4E8","U0001F4E9","U0001F4EA","U0001F4EB","U0001F4EC","U0001F4ED","U0001F4EE","U0001F4F0","U0001F4F2","U0001F4F7","U0001F4F8","U0001F4F9","U0001F4FA","U0001F4FC","U0001F4FD","U0001F50B","U0001F50C","U0001F50D","U0001F50E","U0001F516","U0001F526","U0001F54A","U0001F56F","U0001F5A5","U0001F5A8","U0001F5B1","U0001F5B2","U0001F5DE","U0001F5F3","U0001F600","U0001F601","U0001F602","U0001F603","U0001F604","U0001F605","U0001F606","U0001F607","U0001F608","U0001F609","U0001F60A","U0001F60B","U0001F60C","U0001F60D","U0001F60E","U0001F60F","U0001F610","U0001F611","U0001F612","U0001F613","U0001F614","U0001F615","U0001F616","U0001F617","U0001F618","U0001F619","U0001F61A","U0001F61B","U0001F61C","U0001F61D","U0001F61E","U0001F61F","U0001F620","U0001F621","U0001F622","U0001F623","U0001F624","U0001F625","U0001F626","U0001F627","U0001F628","U0001F629","U0001F62A","U0001F62B","U0001F62C","U0001F62D","U0001F62E","U0001F62F","U0001F630","U0001F631","U0001F632","U0001F633","U0001F634","U0001F635","U0001F636","U0001F637","U0001F641","U0001F642","U0001F643","U0001F644","U0001F910","U0001F911","U0001F912","U0001F913","U0001F914","U0001F915","U0001F916","U0001F917","U0001F920","U0001F921","U0001F922","U0001F923","U0001F924","U0001F925","U0001F927","U0001F928","U0001F929","U0001F92A","U0001F92B","U0001F92C","U0001F92D","U0001F92E","U0001F92F","U0001F970","U0001F971","U0001F972","U0001F973","U0001F974","U0001F975","U0001F976","U0001F978","U0001F97A","U0001F981","U0001F983","U0001F984","U0001F985","U0001F986","U0001F987","U0001F989","U0001F98A","U0001F98C","U0001F98D","U0001F98F","U0001F992","U0001F993","U0001F994","U0001F998","U0001F999","U0001F99B","U0001F99D","U0001F9A1","U0001F9A2","U0001F9A3","U0001F9A5","U0001F9A6","U0001F9A7","U0001F9A8","U0001F9AB","U0001F9AC","U0001F9AE","U0001F9D0","U0001F9EE","U0001F9FE","U0001FA94","U0001FA99")
# driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
driver.find_element_by_class_name('Ypffh').click()
campo_comment = driver.find_element_by_class_name('Ypffh')
driver.execute_script(javascript, campo_comment, random.choice(msg))
print("Element is visible? " + str(campo_comment.is_displayed()))
time.sleep(2)
campo_comment.send_keys(" ")
time.sleep(1)
campo_comment.send_keys(Keys.ENTER)
contador = contador + 1
print('r ', ' ',contador,'- Comentário publicado com sucesso ','(', random.choice(msg),")")
driver.quit()
Errata 1 – O código da interface sem a presença do código do BOT roda sem travar.
Errata 2 – O código do BOT quando rodado no console (terminal) roda perfeitamente.
O que será que eu estou errando?
Obrigado a todos!