xx_mola 0 Posted October 19, 2020 Report Share Posted October 19, 2020 (edited) Estou a desenvolver um bot de whatsapp em python e queria perguntar quantos Contactos, e depois com o numero que ele disse exemplo 3 criasse 3 variáveis com inputs de "digite o contacto" Exemplo: quantos = input("Quantos contactos?:") Por exemplo: 6 con1 = input ... con2 = input ... con3 = input ... con4 = input ... con5 = input ... con6 = input ... Se ele digitasse 8 (Contactos) criava 8 variaveis: con1 = con2 = con3 = etc.. Por favor alguém me ajude Edited October 19, 2020 by xx_mola Link to post Share on other sites
Gnrtuga 21 Posted October 19, 2020 Report Share Posted October 19, 2020 Boas, assim de repente acho que podias criar um while loop para o número que o utilizador introduzir para ires buscar os valores. Para os armazenar usa por exemplo um dicionário ou uma lista. Boa sorte. Férias! Estou por aqui: http://maps.google.p...001549&t=h&z=20 (a bulir claro está!) Nunca mais é verão outra vez.. Link to post Share on other sites
xx_mola 0 Posted October 19, 2020 Author Report Share Posted October 19, 2020 (edited) Vou te enviar o código: Poderia me ajudar melhor, sou iniciante from selenium import webdriver import time mensagem = input("Digite a mensagem que quer mandar:") print() con1 = input("Digite o contacto:") con2 = input("Digite o contacto:") con3 = input("Digite o contacto:") con4 = input("Digite o contacto:") con5 = input("Digite o contacto:") class WhatsappBot: def __init__(self): self.mensagem = mensagem self.grupos = [con1, con2, con3, con4, con5] options = webdriver.ChromeOptions() options.add_argument('lang=pt') self.driver = webdriver.Chrome(executable_path=r'./chromedriver.exe') def EnviarMensagens(self): self.driver.get("https://web.whatsapp.com/") time.sleep(30) for grupo in self.grupos: grupo = self.driver.find_element_by_xpath(f"//span[@title='{grupo}']") grupo.click() time.sleep(2) barra = self.driver.find_element_by_class_name('_3uMse') barra.click() time.sleep(2) barra.send_keys(self.mensagem) enviar = self.driver.find_element_by_xpath('//span[@data-icon="send"]') enviar.click() time.sleep(2) bot = WhatsappBot() bot.EnviarMensagens() Edited October 19, 2020 by xx_mola Link to post Share on other sites
Gnrtuga 21 Posted October 20, 2020 Report Share Posted October 20, 2020 Boas, pois antes de tentares fazer coisas mais complicadas devias primeiro ver as mais simples... from selenium import webdriver import time mensagem = input("Digite a mensagem que quer mandar:") print() NumeroContatos = int(input("Digite para quantos utilizadores quer mandar a mensagem:")) #aqui vai converter o texto para número inteiro print() contador = 0 contactos = [] # Lista para onde vais enviar os contactos introduzidos while contador != NumeroContatos: #Enquanto o contador não for igual ao Numero de contactos introduzidos pelo utilizador, vai repetir contacto= int(input("Digite o contacto:")) #aqui converte o texto para número inteiro contactos.append(contacto) #adiciona o contacto à lista de contactos contador +=1 print(contactos) class WhatsappBot: def __init__(self): self.mensagem = mensagem self.grupos = contactos # aqui vais enviar a lista de contatos options = webdriver.ChromeOptions() options.add_argument('lang=pt') self.driver = webdriver.Chrome(executable_path=r'./chromedriver.exe') Não tem muito que saber, comentei o código para que percebas melhor, mas basicamente vais repetir a mensagem a pedir o contacto até ser igual ao número de contactos que o utilizador introduziu. Esses contactos são adicionados a uma lista. Na classe WhatsappBot em vez de passares os contactos um a um, como estavas a fazer, mandas logo a lista de contactos. Boa sorte. 1 Report Férias! Estou por aqui: http://maps.google.p...001549&t=h&z=20 (a bulir claro está!) Nunca mais é verão outra vez.. Link to post Share on other sites
xx_mola 0 Posted October 20, 2020 Author Report Share Posted October 20, 2020 Salvaste a minha vida ando a aprender Python ainda, não sabes como estou agradecido! Link to post Share on other sites
Gnrtuga 21 Posted October 20, 2020 Report Share Posted October 20, 2020 De nada, tens é que ver o básico e treinar, e voltar a treinar. Fica bem e boa sorte na aprendizagem. Férias! Estou por aqui: http://maps.google.p...001549&t=h&z=20 (a bulir claro está!) Nunca mais é verão outra vez.. Link to post Share on other sites
xx_mola 0 Posted October 20, 2020 Author Report Share Posted October 20, 2020 Mas há um problema quando executo o código ele não faz o input (Digite a mensagem que quer mandar) Executa com o input (Digite o contacto) Não dá os primeiros inputs Link to post Share on other sites
Gnrtuga 21 Posted October 20, 2020 Report Share Posted October 20, 2020 Experimenta meter essa parte da mensagem no fim do while onde está o print (contactos) # esqueci-me de apagar a parte do print. Se não der logo dizes que amanhã logo vejo. Férias! Estou por aqui: http://maps.google.p...001549&t=h&z=20 (a bulir claro está!) Nunca mais é verão outra vez.. Link to post Share on other sites
xx_mola 0 Posted October 20, 2020 Author Report Share Posted October 20, 2020 Não era isso, já consegui resolver troquei o int para str em "contacto= int(input("Digite o contacto:"))" e deu certo.Muito obrigado Link to post Share on other sites
Gnrtuga 21 Posted October 20, 2020 Report Share Posted October 20, 2020 😜 não é preciso converter para string (str) porque tudo o que é introduzido pelo utilizador vem como string. Assim sendo, pode ficar só contacto=input("Digite o contacto:"), que funciona na mesma. Férias! Estou por aqui: http://maps.google.p...001549&t=h&z=20 (a bulir claro está!) Nunca mais é verão outra vez.. Link to post Share on other sites
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now