Como criar um bot no WhatsApp de envio de mensagem automáticas
Para todas as vovós, tios e tias, vendedores e amigos de plantão, que gostam de enviar mensagem para os conhecidos todos os dias, eu tenho um segredo para você: aprenda a fazer isso de um jeito mais eficiente, deixando o código trabalhar por você.
Por que fazer um trabalho manual todo dia se podemos, através da programação com Python, criar um robô para o WhatsApp uma vez e depois deixar ele trabalhando incansavelmente por nós?
Você está pronto para montar o nosso “robô WhatsApp”? Ele irá enviar as mensagens que você definir para todos os grupos ou contatos individuais que você quiser.
Se você está pronto para aprender, então bora lá!
Instalação das ferramentas
Instalação do Python
Para que a gente consiga criar nosso bot, iremos fazer a instalação do Python. Para fazer a instalação do Python acesse https://www.python.org/downloads/ e faça o download da versão mais atual do Python.

Na sequência execute o arquivo de instalação, mas fique atento as duas opções que você precisa marcar, ou o restante do tutorial não irá funcionar. Marque as opções Add Python to PATH(ou a tradução disso em português) e Install Launcher.

Se a instalação foi feita corretamente, você deve possuir o Python instalado agora.
Podemos verificar se a instalação funcionou corretamente abrindo o terminal (botão iniciar -> digite cmd no windows) , digitando python e apertando enter. Você deve receber uma mensagem dizendo qual é a versão atual instalada em seu computador. Algo como a imagem abaixo:

Caso este comando gere um erro, e não exiba a versão do Python. Volte aos passos anteriores e faça a instalação novamente.
Instalação do Selenium
Agora temos que fazer a instalação que nos permitirá fazer a automação de tarefas na web.
O nosso exemplo de hoje sendo a automação de envio de mensagens para contatos e grupos no WhatsApp web.
Abra um novo terminal e digite:
pip install selenium
Ao rodar este comando você estará instalando a biblioteca que utilizaremos para navegar até o whatsapp web.
Caso tenha um erro aqui, é provável que sua instalação do python não foi feita corretamente. Desinstale o python e siga o passo da instalação novamente.
Baixando o Google Chrome Driver
A seguir temos que fazer o download do Google Chrome Driver que é um navegador especialmente criado para fazer automação de sites.
Ao acessar o site, você verá algumas versões diferentes para fazer o download. Você deve baixar uma versão igual à versão do Google Chrome que esta instalada em seu computador.
Como descobrir a sua versão atual do Google Chrome?
Vá até em configurações, sobre Google Chrome(minha versão está em inglês, mas as imagens devem ajudar)

Após clicar neste menu, seremos levados para uma página onde podemos verificar a versão do Chrome que temos instalado. No meu caso possuo a versão 80, mas é possível que você possua uma versão diferente.

Agora temos a informação que precisamos: nossa versão do Google Chrome. Com essa informação em mãos, navegue ate https://chromedriver.chromium.org/downloads. E clique na versão que corresponde a sua versão do Chrome.
No meu caso estarei fazendo o download da versão 80(baixe a versão do seu Google Chrome)

Na página a seguir você deve baixar o arquivo correspondente ao seu sistema operacional. Como uso Windows 10, estarei fazendo o download da versão para o Windows:

Após ter feito o download do driver, extraia o arquivo .zip para que possamos usar ele no próximo passo.
Criando uma pasta para o projeto
Navegue até algum lugar no seu computador(área de trabalho, por exemplo) e crie uma nova pasta.
Vamos chamar essa pasta de “bot whatsapp”(o nome não importa). Feito isso copie o chromedriver.exe que você acaba de extrair para dentro desta pasta. Estes arquivos serão usados a seguir.
Instalação do VS Code
Navegue até https://code.visualstudio.com/ e clique no botão de download.

Após o download, execute o arquivo e faça os seguintes passos para fazer a instalação do VS Code



O Vs Code deve abrir automaticamente. Caso não abra vá até botão iniciar –> vs code.
Preparando o VS Code para uso do Python
Ao abrir o VS Code pela primeira vez, as ferramentas da linguagem de programação Python não estarão instaladas.
Para fazer essa instalação, clique em Python dentro de “Tools and languages“(ou o correspondente disso em português) e aguarde até que ele fique cinza, como na imagem abaixo.

Clique em open folder(ou “abrir pasta” caso esteja em português) e selecione a pasta”bot whatsapp”, criada no passo anterior.


Hora do código
Ok, estamos agora dentro da pasta onde iremos colocar nosso código. Para criar um arquivo python, clique com o botão esquerdo em New File(ou novo arquivo em português).

A seguir iremos criar um arquivo chamado whatsapp_bot.py. Com isso você deve ter o arquivo whatsapp_bot..py aberto, caso ele não tenha aberto automaticamente, faça isso agora.
Caso precise renomear o arquivo, clique em cima dele e aperte F2 no seu teclado para alterar o nome do arquivo.

Configurando nome dos grupos e pessoas
Copie o código abaixo para dentro do arquivo whatsapp bot, você deve alterar as mensagens dentro da Parte 1 e Parte 2 como visto no código abaixo.
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
import time
class WhatsappBot:
def __init__(self):
# Parte 1 - A mensagem que você quer enviar
self.mensagem = "Bom dia pessoal, veja o video que acabou de sair https://www.youtube.com"
# Parte 2 - Nome dos grupos ou pessoas a quem você deseja enviar a mensagem
self.grupos_ou_pessoas = ["GRUPO DA FAMÍLIA", "GRUPO DE VENDAS"]
options = webdriver.ChromeOptions()
options.add_argument('lang=pt-br')
self.driver = webdriver.Chrome(
executable_path=r'./chromedriver.exe', chrome_options=options)
A única configuração que você precisa fazer já foi feita no bloco de código do passo anterior. No entanto, ele ainda não está completo, adicione o código abaixo ao arquivo whatsapp_bot.py .
def EnviarMensagens(self):
self.driver.get('https://web.whatsapp.com')
time.sleep(30)
for grupo_ou_pessoa in self.grupos_ou_pessoas:
campo_grupo = self.driver.find_element_by_xpath(
f"//span[@title='{grupo_ou_pessoa}']")
time.sleep(3)
campo_grupo.click()
chat_box = self.driver.find_element_by_class_name('_13mgZ')
time.sleep(3)
chat_box.click()
chat_box.send_keys(self.mensagem)
botao_enviar = self.driver.find_element_by_xpath(
"//span[@data-icon='send']")
time.sleep(3)
botao_enviar.click()
time.sleep(5)
bot = WhatsappBot()
bot.EnviarMensagens()
Para executar o código acima temos 2 opções.
Opção 1) Clicar no botao “Play” do VS Code

Opção 2) Executar o script Python diretamente no terminal.
Para abrir o terminal aperte CTRL + ` (tecla logo abaixo do ESC) no seu teclado e digite py.exe + nome do arquivo que criou.
No nosso caso como criei o arquivo chamado whatsapp_bot.py, estarei rodando o comando abaixo:
py.exe whatsapp_bot.py

Acessando o WhatsApp Web
Após ter rodado o arquivo o nosso programa irá abrir o site do WhatsApp Web.
Nele você deverá ler o QR code para que ele possa abrir o whatsapp web.

Agora você não precisa fazer mais nada. Apenas aguarde a veja o nosso bot fazer o trabalho para a gente 😎 .
P.S. – O bot irá enviar mensagem apenas para contatos que estejam visíveis quando você abre o Whatsapp Web. Caso o contato ou grupo para o qual está tentando enviar mensagem não esteja visível nessa janela, o bot não irá funcionar, sendo necessário alterar o código para que ele trate essas situações também.
Considerações Finais
Isso é apenas um exemplo de um Bot que podemos criar usando o Python + Selenium. Imagina o quanto você poderia fazer se soubesse ainda mais sobre esse tema?
Imagine se você pudesse
- Criar robôs que trabalham por você?
- Usar a programação ao seu favor?
- Economizar dezenas de horas?
- Monetizar seu conhecimento?
É exatamente isso que estarei te ensinando neste curso, saiba mais clicando aqui.
Prefere assistir vídeo? Veja a explicação completa no vídeo abaixo:
Muito bom. Daria para usar “Grupos %”? Pegar todos os grupos que começam com a palavra “grupos”? como seria?
você pode usar regex
Fazendo o exercício da penúltima aula.
Fazendo o exercício da penúltima aula.
Cara muito top, voce podia dar umas dicas de como colocar uma lista de telefone .txt para enviar para alguns contatos
Olá fernando! Obrigado pelo comentário.
Vou considerar a possibilidade
ou podia ser uma lista do excel…eu preciso enviar de telefones do excell e não quero salvar os contatos na minha conta do android…tem como fazer isso???
Achei muito bom, porém não consegui rodar no meu pc, fiz conforme ensinado, sempre aparecia uma mensagem enorme embaixo, no terminal:
Windows PowerShell
Copyright (C) Microsoft Corporation. Todos os direitos reservados.
Experimente a nova plataforma cruzada PowerShell https://aka.ms/pscore6
PS C:\Users\WINDOWS 10\Desktop\Bot whatsapp> & "C:/Users/WINDOWS 10/AppData/Local/Programs/Python/Python38-32/python.exe" "c:/Users/WINDOWS 10/Desktop/Bot whatsapp/whatsapp_bot.py"
c:/Users/WINDOWS 10/Desktop/Bot whatsapp/whatsapp_bot.py:13: DeprecationWarning: use options instead of chrome_options
self.driver = webdriver.Chrome(
Traceback (most recent call last):
File "C:\Users\WINDOWS 10\AppData\Local\Programs\Python\Python38-32\lib\site-packages\selenium\webdriver\common\service.py", line
72, in start
self.process = subprocess.Popen(cmd, env=self.env,
File "C:\Users\WINDOWS 10\AppData\Local\Programs\Python\Python38-32\lib\subprocess.py", line 854, in __init__
self._execute_child(args, executable, preexec_fn, close_fds,
File "C:\Users\WINDOWS 10\AppData\Local\Programs\Python\Python38-32\lib\subprocess.py", line 1307, in _execute_child
hp, ht, pid, tid = _winapi.CreateProcess(executable, args,
FileNotFoundError: [WinError 2] O sistema não pode encontrar o arquivo especificado
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "c:/Users/WINDOWS 10/Desktop/Bot whatsapp/whatsapp_bot.py", line 35, in
bot = WhatsappBot()
File "c:/Users/WINDOWS 10/Desktop/Bot whatsapp/whatsapp_bot.py", line 13, in __init__
self.driver = webdriver.Chrome(
File "C:\Users\WINDOWS 10\AppData\Local\Programs\Python\Python38-32\lib\site-packages\selenium\webdriver\chrome\webdriver.py", line 73, in __init__
self.service.start()
File "C:\Users\WINDOWS 10\AppData\Local\Programs\Python\Python38-32\lib\site-packages\selenium\webdriver\common\service.py", line
81, in start
raise WebDriverException(
selenium.common.exceptions.WebDriverException: Message: 'chromedriver.exe' executable needs to be in PATH. Please see https://sites.google.com/a/chromium.org/chromedriver/home
Bom essa “mensagem enorme” é uma dica e indicação de o que precisa ser resolvido.
A única linha que você precisa ler e entender é a última aqui:
“selenium.common.exceptions.WebDriverException: Message: ‘chromedriver.exe’ executable needs to be in PATH. Please see https://sites.google.com/a/chromium.org/chromedriver/hom”
Ela está dizendo que o caminho que usou para o chromedriver.exe não está sendo encontrado, qual caminho você utilizou. O correto-se está fazendo igual o tutorial é: r’./chromedriver.exe’
Caso isso não funcione é possível que tenha que colocar o caminho completo do chromedriver.exe
Ex: ‘c:/jhonatan/area de trabalho/bot whatsapp/chromedriver.exe’
Isso é um exemplo de um caminho completo, se você copiar ele não irá funcionar porque esse caminho é o caminho no meu computador, você precisa alterar para usar o seu caminho.
Olá Jonathan no meu também esta dando o mesmo erro do dele.
Porém segui o tutorial ponto a ponto, verifiquei todos os pontos e acentos, verifiquei enfim tudo o que eu poderia ter verificado e não funcionou. O meu código é esse:
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
import time
class whatsappbot:
def _init_(self):
self.mensagem= “Olá tudo bem?”
self.grupos =[“Divulgação 01″,”Divulgação 02″,”Divulgação 03″,”Divulgação 04″,”Divulgação 05″]
options = webdriver.ChromeOptions()
options.add_argument(‘lang=pt-br’)
self.driver = webdriver.Chrome(
executable_path=r’./chromedriver.exe’, chrome_options=options)
def EnviarMensagens(self):
#ENTREGADORES BRASIL
#
#
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}’]”)
time.sleep(3)
grupo.click()
chat_box = self.driver.find_elements_by_class_name(‘_2vJ01′)
time.sleep(3)
chat_box.click()
chat_box.send_keys(self.mensagem)
botao_enviar = self.driver.find_element_by_xpath(“//span[@data-icon=’send’]”)
time.sleep(3)
botao_enviar.click()
time.sleep(5)
bot = whatsappbot()
bot.EnviarMensagens()
E o erro que esta dando é esse:
C:\Program Files (x86)\Python38-32\python.exe: can’t open file ‘./whatsapp_bot.py’: [Errno 2] No such file or directory
PS C:\Users\Fábio>
Não vai de geito algum. Poderia me auxiliar por gentileza professor?
eu adorei essa parada, mas…
eu já tive uma meia dúzia de erros, já até desinstalei e fiz o processo do zero algumas vezes
nada funcionou.
esses são alguns erros:
options = webdriver.ChromeOptions()
Windows PowerShell
PS C:\Douglas 0305\Bot Whatsapp> & C:/Users/dougl/AppData/Local/Programs/Python/Python38-32/python.exe “c:/Douglas 0305/Bot Whatsapp/whatsapp_bot.py”
Traceback (most recent call last):
File “c:/Douglas 0305/Bot Whatsapp/whatsapp_bot.py”, line 30, in
File “c:/Douglas 0305/Bot Whatsapp/whatsapp_bot.py”, line 7, in __init__
options = webdriver.ChromeOptions()
NameError: name ‘webdriver’ is not defined
PS C:\Douglas 0305\Bot Whatsapp> & C:/Users/dougl/AppData/Local/Programs/Python/Python38-32/python.exe “c:/Douglas 0305/Bot Whatsapp/whatsapp_bot.py”
File “c:/Douglas 0305/Bot Whatsapp/whatsapp_bot.py”, line 12
self.driver.get(‘https://web.whatsapp.com’)
IndentationError: expected an indented block
PS C:\Douglas 0305\Bot Whatsapp> & C:/Users/dougl/AppData/Local/Programs/Python/Python38-32/python.exe “c:/Douglas 0305/Bot Whatsapp/whatsapp_bot.py”
Traceback (most recent call last):
File “c:/Douglas 0305/Bot Whatsapp/whatsapp_bot.py”, line 30, in
bot = WhatsappBot()
File “c:/Douglas 0305/Bot Whatsapp/whatsapp_bot.py”, line 7, in __init__
NameError: name ‘webdriver’ is not defined
PS C:\Douglas 0305\Bot Whatsapp> & C:/Users/dougl/AppData/Local/Programs/Python/Python38-32/python.exe “c:/Douglas 0305/Bot Whatsapp/whatsapp_bot.py”
Traceback (most recent call last):
File “c:/Douglas 0305/Bot Whatsapp/whatsapp_bot.py”, line 30, in
bot = WhatsappBot()
File “c:/Douglas 0305/Bot Whatsapp/whatsapp_bot.py”, line 7, in __init__
options = webdriver.ChromeOptions()
NameError: name ‘webdriver’ is not defined
PS C:\Douglas 0305\Bot Whatsapp> & C:/Users/dougl/AppData/Local/Programs/Python/Python38-32/python.exe “c:/Douglas 0305/Bot Whatsapp/whatsapp_bot.py”
Traceback (most recent call last):
File “c:/Douglas 0305/Bot Whatsapp/whatsapp_bot.py”, line 29, in
bot = WhatsappBot()
File “c:/Douglas 0305/Bot Whatsapp/whatsapp_bot.py”, line 7, in __init__
options = webdriver.chrome_options()
NameError: name ‘webdriver’ is not defined
PS C:\Douglas 0305\Bot Whatsapp>
tiveram outros…
o sistema acusa que não reconhece o termo webdriver, o time, o self
enfim, topo até anydesk pra fazer essa parada rodar…
No meu esta dando Erro
{
“resource”: “/c:/Users/Noel Cunha/Desktop/BotWhatsapp/Whatsapp_bot.py”,
“owner”: “python”,
“code”: “syntax-error”,
“severity”: 8,
“message”: “unexpected indent (, line 11)”,
“source”: “pylint”,
“startLineNumber”: 11,
“startColumn”: 13,
“endLineNumber”: 11,
“endColumn”: 13
}
Estou adorando suas aulas e tutorials. Acabei de finalizar o curso de Javascript. Inclusive, esta mensagem está sendo enviada via console do inspecionar elemento como ensinado no curso. Parabéns e OBRIGADO!
woohoo vamo que vamo!
Parabéns pelo projeto. Não conheço Phython mas consegui fazer funcionar apenas copiando o código mas eu gostaria de aprender melhor o processo na linguagem com a qual eu tenho trabalhado ultimamente que é C# e não estou conseguindo.
Ele não consegue encontrar:
destino = driver.FindElement(By.XPath(“//span[@title=’- Edu Oi Antigo’]”));
Já tentei de diversas maneiras e nada.
Se puder me ajude.
Desde já agradeço.
O meu rodou somente o primeiro nome, já o segundo nome da erro, o interessante que se eu uso outro nome não roda e nem numero!! mas se eu repetir o nome ele roda!!
toods os nomes estao corretos
Eu tenho o mesmo problema. Você conseguiu resolver?
Boa noite, Jhonatan!
O meu apareceu esse código:
PS C:\Users\Silvio\Desktop\Bot_Whats> & C:/Users/Silvio/AppData/Local/Programs/Python/Python38-32/python.exe c:/Users/Silvio/Desktop/Bot_Whats/whatsapp_bot.py
Traceback (most recent call last):
File “c:/Users/Silvio/Desktop/Bot_Whats/whatsapp_bot.py”, line 1, in
class WhatsappBot:
File “c:/Users/Silvio/Desktop/Bot_Whats/whatsapp_bot.py”, line 31, in WhatsappBot
bot = WhatsappBot()
NameError: name ‘WhatsappBot’ is not defined
PS C:\Users\Silvio\Desktop\Bot_Whats> py.exe .\whatsapp_bot.py
Traceback (most recent call last):
File “.\whatsapp_bot.py”, line 1, in
class WhatsappBot:
File “.\whatsapp_bot.py”, line 31, in WhatsappBot
bot = WhatsappBot()
NameError: name ‘WhatsappBot’ is not defined
PS C:\Users\Silvio\Desktop\Bot_Whats>
Informa que o nome WhatsappBot não foi definido.
Como faço para consertar?
De já, obrigado!
Pelo que vi Silvio faltou colocar o nome no seu Bot, seria algo como
bot = WhatsappBot(‘Nome do Bot aqui’)
Obrigado, João Marcos!
Vou tentar aqui.
Olá, estou fazendo seu curso de JAvaScript completo, e teno adorado as aulas, obrigado por compartilhar seu conhecimento. Essa mensagem esta sendo feita como exercicio das suas aulas. Gratidão!
TOOOPZEIIRA!! Harreson!
Vamos dominar todo esse mundo de programação!
01 from selenium import webdriver
02 import time
03
04 class whatsappBot:
05 def __init__(self):
06 self.mensagem = “Bom dia Filhota,”
07 self.grupos = [“Thelissa Amanda-015″]
08 options = webdriver.ChromeOptions()
09 options.add_argument(‘lang=pt-br’)
10 self.driver = webdriver.chrome(executable_path=r’C:\Users\usuario\Desktop\BotWhats>/chromedriver.exe’)
11
12 def EnviarMensagens(self):
13 # Thelissa Amanda-015
14 #
15 #
16
17 self.driver.get(‘https://web.whatsapp.com’)
18 time.sleep(30)
19 for grupo in self.grupos:
20 grupo = self.drive.find_element_by_xpath(f”//span[@title='{grupo}’]”)
21 time.sleep(3)
22 grupo.click()
23 chat_box = self.driver.find_element_by_class_name(‘_1Plpp’)
24 time.sleep(3)
25 chat_box.click()
26 chat_box.send_keys(self.mensagem)
27 botao_enviar = self.drive.find_element_by_xpath(“//span[@data-icon=’send’]”)
18 time.sleep(3)
29 botão_enviar.click()
30 time.sleep(5)
31 bot = whatsappBot(zapbot)
32 bot.EnviarMensagens()
==================
C:\Users\usuario\Desktop\BotWhats> py.exe zapbot.py
Traceback (most recent call last):
File “zapbot.py”, line 31, in
bot = whatsappBot(zapbot)
NameError: name ‘zapbot’ is not defined
Veja a publicação novamente, seu código está diferente.
bot = whatsappBot(zapbot)
essa linha está errada, não é para passar nada aqui.
remova o zapbot de dentro do parenteses
Amigo jhonatan,
Como pode ver acima segui a risca todas as dicas, assisti ao seu vídeo 6 vezes com calma para certificar-me que não estava passando batido em alguma rotina, li o código que você disponibilizou e fiz todas as alterações que estavam diferentes do vídeo e não consegui o mesmo resultado que você obteve no vídeo.
Por favor mostre-me onde estou errando.
Obrigado
bot = whatsappBot(zapbot) está incorreto, vejo o tutorial escrito acima.
Você não deve adicionar a palavra zapbot aqui
Bom dia Jhonatan,
Primeiramente muito obrigado pela sua prestimosa atenção, sua observação é justa, porém vamos atirando até acertar…(risos).
Fiz a correção conforme orientado mas continua apresentando ERRO, Eu coloquei o endereço completo onde está o chromedriver para ver se funcionava.
File “c:/Users/usuario/Desktop/BotWhats/zapbot.py”, line 31, in
bot = whatsappBot()
File “c:/Users/usuario/Desktop/BotWhats/zapbot.py”, line 10, in _init_
self.driver = webdriver.chrome(executable_path=r’C:\Users\usuario\Desktop\BotWhats>/chromedriver.exe’)
TypeError: ‘module’ object is not callable
Olá, sou o João
Oi, boa tarde!
Achei esse projeto muito massa! Mas tive um probleminha… No caso de o grupo ter emojin no nome como devo proceder para que funcione?
seria necessário encontrar o equivalente do código ansii para fazer isso.
Dê uma pesquisada sobre codigo ansii emoji e use eles.
Não consigo te dar uma passo a passo detalhado. Mas isso já pode servir como início para suas buscar
Sua didática e detalhamento é sensacional, não há como não aprender, parabéns!
Você ganhou um inscrito vitalício, mas vai acabar recebendo as dúvidas também, kkkkkkk
Não sou dev e estou iniciando com Python por hobby, então talvez seja uma pergunta estúpida, mas vai assim mesmo.
Ao rodar o código aparece o erro: AttributeError: ‘list’ object has no attribute ‘click’
Estou rodando em MAC, mas acho que não é esse o problema, então fiquei em dúvida se falta instalar alguma biblioteca?
Fala moises, bem vindo ao site e obrigado pelo comentário!
Sobre o erro que mencionou:
Se você dar uma googlada vai perceber que o erro está dizendo que você está tentando enviar o click para uma lista de objetos(o que é impossível).
Você só pode enviar o click para um único objeto.
Isso significa que em algum momento você(provavelmente) digitou o código find_elements ao invés de find_element (no singular)
Se for este o caso, basta remover o S do método find_elements e usar a versão no singular
‘list’ object has no attribute ‘click’
Por questões de princípio não uso Chrome e sim Firefox. Estou tentando usar o geckodriver mas dá erro. Então gostaria de saber como converter o programa zapbot usando uma biblioteca equivalente para o Firefox?
Entendi, a única coisa que mudaria seria a declaração inicial de como usar o geckodriver ao invéz do chromedriver.exe
JHONATAN parabéns pela didática show, implementei o código mas ocorreu o erro abaixo, ainda não consegui descobri o aconteceu, as únicas mudanças em relação ao seu código são as duas primeiras linhas que não estão no blog, mas estão no youtube, o nome do grupo do Whatsapp e a mudança do nome do elemento do chat_box.
DevTools listening on ws://127.0.0.1:54660/devtools/browser/e982577a-c5c0-4487-84d4-e159ee0bba2b
[21816:6656:0421/155008.132:ERROR:browser_switcher_service.cc(238)] XXX Init()
Traceback (most recent call last):
File “f:/Google/Projeto_Bot_Whatsapp/zapbot.py”, line 36, in
bot.EnviarMensagens()
AttributeError: ‘WhatsappBot’ object has no attribute ‘EnviarMensagens’
PS F:\Google\Projeto_Bot_Whatsapp>
Segue o código:
from selenium import webdriver
import time
class WhatsappBot:
def __init__(self):
# Parte 1 – A mensagem que você quer enviar
self.mensagem = “Bom dia pessoal, veja o video que acabou de sair https://www.youtube.com”
# Parte 2 – Nome dos grupos ou pessoas a quem você deseja enviar a mensagem
self.grupos_ou_pessoas = [“Revisão depois”]
options = webdriver.ChromeOptions()
options.add_argument(‘lang=pt-br’)
self.driver = webdriver.Chrome(
executable_path=r’./chromedriver.exe’, chrome_options=options)
def EnviarMensagens(self):
self.driver.get(‘https://web.whatsapp.com’)
time.sleep(30)
for grupo_ou_pessoa in self.grupos_ou_pessoas:
campo_grupo = self.driver.find_element_by_xpath(
f”//span[@title='{grupo_ou_pessoa}’]”)
time.sleep(3)
campo_grupo.click()
chat_box = self.driver.find_element_by_class_name(‘_2tW_W’)
time.sleep(3)
chat_box.click()
chat_box.send_keys(self.mensagem)
botao_enviar = self.driver.find_element_by_xpath(
“//span[@data-icon=’send’]”)
time.sleep(3)
botao_enviar.click()
time.sleep(5)
bot = WhatsappBot()
bot.EnviarMensagens()
Descobri qual era o problema no seu segundo código, na parte: “def EnviarMensagens(self):” no seu texto não está indentado, tá no começo da linha, se alguém copiar e não ajustar dá erro, mas se olhar na imagem seguinte dá pra perceber que deveria estar indentado, fiz esse ajuste e passou desse erro.
ah sim, vou verificar.
Obrigado
Editado: Acabei de verificar e estava ok, é possível que o editor adicionou a indentação quando copiou e colou
JHONATAN, testei o programa e funcionou, aproveitei e coloquei um tratamento de exceção pra checar envio de mensagens para pessoas e realmente parece esse bot não faz isso, envia mensagem apenas somente para grupos, é isso mesmo?
o bot enviar mensagens para o nome das pessoas que estiverem dentro da lista, apenas isso.
Então serve para ambos
Estou com esse erro:
{
“resource”: “/C:/Users/Grimaldi/Desktop/bot whatsapp/whatsapp_bot.py”,
“owner”: “python”,
“code”: “undefined-variable”,
“severity”: 8,
“message”: “Undefined variable ‘time'”,
“source”: “pylint”,
“startLineNumber”: 29,
“startColumn”: 13,
“endLineNumber”: 29,
“endColumn”: 13
}
O seu erro está aqui: “message”: “Undefined variable ‘time'”,
Ou seja você está usando uma varia´vel que não foi declarada antes.
Veja/leia o tutorial e certifique-se que essa variável(e qualquer outra que possa ter esquecido também) tenha sido declarada corretamente
Olá, cara, eu fiz tudo certo (pelo q eu vi), mas n está funcionando, me ajuda aqui?
from selenium import webdriver
import time
class WhatsappBot:
def __init__(self):
self.mensagem = “Testando”
self.grupos = [“BOT”]
options = webdriver.ChromeOptions()
options.add_argument(‘lang=pt-br’)
self.driver = webdriver.Chrome(executable_path=r’./chromedriver.exe’)
def EnviarMensagens(self):
# BOT
#
#
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}’]”)
time.sleep(3)
grupo.click()
chat_box = self.driver.find_element_by_class_name(‘_1Plpp’)
time.sleep(3)
chat_box.click()
chat_box.send_keys(self.mensagem)
botao_enviar = self.driver.find_element_by_xpath(“//span[@data-icon=’send’]”)
time.sleep(3)
botao_enviar.click()
time.sleep(5)
bot = WhatsappBot()
bot.EnviarMensagens()
Quando eu rodo, aparece isso:
Editei seu comentário pq estava gigante. O seu erro está apenas na última linha
selenium.common.exceptions.SessionNotCreatedException: Message: session not created: This version of ChromeDriver only supports Chrome version 77
A versão do chrome driver que você instalou está incorreta, veja esse vídeo que criei que ensina como instalar a versão correta : https://www.youtube.com/watch?v=Ot10qzrb13c
Fazendo isso o restante deve funcionar
Ola,
Neste caso,
Toda vez que o navegador Chrome for atualizado, temos que atualizar WebDriver também?
Isso?. Para evitar esse erro?
exato
Incrível cara!!!
Fui acompanhando passo a passo…
Deram uns errinhos aqui, mas fui olhando com detalhe o que falava em cada um.
E no final, não tava carregando a url do whats no chrome, mas era pq o segundo def não tava indentado corretamente.
Parabéns! vou passar a acompanhar sempre seus conteúdos!
E quando terminar as minhas demandas aqui, quero participar de um curso seu. Achei top conseguir fazer uma coisa funcional!!!!
hhaha massa demais! Isso que eu quero ver!
Parabéns
Caraca, q top man! Deu certo! Vlw! Você sabe como fazer para o bot ficar enviando as mensagens repetidamente?
O meu deu o seguinte erro:
Bluetooth: bluetooth_adapter_winrt.cc:1055 Getting Default Adapter failed.
🙁
Fala antonio, não cheguei a ver este erro antes, teria que dar uma pesquisada para tentar encontrar uma solução
Muito obrigado, Jhonatan.
Consegui alterar alguns parâmetros e utilizar com Firefox.
Abraço!
Alguma solução para o erro?
ola, boa tarde
o meu esta dando 9 erros, poderia me ajudar?
os erros são:
Undefined variable ‘webdriver’
Undefined variable ‘webdriver’
Undefined variable ‘time’
Undefined variable ‘time’
Undefined variable ‘time’
Undefined variable ‘time’
Undefined variable ‘time’
Instance of ‘WhatsappBot’ has no ‘EnviarMensagens’ member
Unused variable ‘EnviarMensagens’
eu botei a mesma quantidade de erros que mostra lá
se quiser eu mando as linhas de codigo que eu usei
Amigo, tem um tutorial em C#? Obrigado.
Fala andre, tenho apenas em python mesmo
Cara fantastico sua didatica… tentei aqui e ainda estou tentando rodar em mac, mas estou tendo esse erro.
File “/Users/andreribeiro/Desktop/BOT Projetos/BOTZap/zapbot.py”, line 16
campo_grupo = self.driver.find_element_by_xpath(f”//span[@title='{grupo}’]”)
^
SyntaxError: invalid syntax
Como faria lá no código na parte de digitar a mensagem e nomes dos grupos ou pessoal, eu quando transformar de py para exe( console)? Exe: na parte de digitar a mensagem: colocaria, input(‘digite sua mensagem: ‘)??
Estou recebendo o mesmo erro.
Baixei o teu código do Baixe o código usado neste vídeo: http://b.link/BaixarCodigoBotWhatsApp
[Running] python -u “c:\RoboWatsap\bot_whatsapp\zapbot.py”
File “c:\RoboWatsap\bot_whatsapp\zapbot.py”, line 18
campo_grupo = self.driver.find_element_by_xpath(f”//span[@title='{grupo_ou_pessoa}’]”)
^
SyntaxError: invalid syntax
Boa tarde! POderia me ajudar ,meu código esta assim.
class WhatsappBot:
def __init__(self):
# Parte 1 – A mensagem que você quer enviar
self.mensagem = “Bom dia pessoal, veja o video que acabou de sair https://www.youtube.com”
# Parte 2 – Nome dos grupos ou pessoas a quem você deseja enviar a mensagem
self.grupos_ou_pessoas = [“GRUPO DA FAMÍLIA”, “GRUPO DE VENDAS”]
options = webdriver.ChromeOptions()
options.add_argument(‘lang=pt-br’)
self.driver = webdriver.Chrome(
executable_path=’C:/Users/gabri/OneDrive/Área de Trabalho/BotWhatsapp/.vscode/chromedriver.exe’, chrome_options=options)
def EnviarMensagens(self):
self.driver.get(‘https://web.whatsapp.com’)
time.sleep(30)
for grupo_ou_pessoa in self.grupos_ou_pessoas:
campo_grupo = self.driver.find_element_by_xpath(
f”//span[@title='{grupo_ou_pessoa}’]”)
time.sleep(3)
campo_grupo.click()
chat_box = self.driver.find_element_by_class_name(‘_13mgZ’)
time.sleep(3)
chat_box.click()
chat_box.send_keys(self.mensagem)
botao_enviar = self.driver.find_element_by_xpath(
“//span[@data-icon=’send’]”)
time.sleep(3)
botao_enviar.click()
time.sleep(5)
Mas aparece esse erro!
Traceback (most recent call last):
File “c:\Users\gabri\OneDrive\�rea de Trabalho\BotWhatsapp\.vscode\zapBot.py”, line 31, in
bot = WhatsappBot()
File “c:\Users\gabri\OneDrive\�rea de Trabalho\BotWhatsapp\.vscode\zapBot.py”, line 7, in __init__
options = webdriver.ChromeOptions()
NameError: name ‘webdriver’ is not defined
Alguém poderia me ajudar?
Meu Amigo Jonathan
Continuo tentando e está me dando este erro, você poderia por favor me orientar, muito obrigado pela sua atenção.
self.driver = webdriver.chrome(executable_path=r’C:./chromedriver.exe’, Chrome_options=options)
TypeError: ‘module’ object is not callable
C:\Users\usuario\Desktop\BotWhats>C:/Users/usuario/AppData/Local/Programs/Python/Python38-32/python.exe c:/Users/usuario/Desktop/BotWhats/zapbot.py
Traceback (most recent call last):
File “c:/Users/usuario/Desktop/BotWhats/zapbot.py”, line 31, in
bot = whatsappBot()
File “c:/Users/usuario/Desktop/BotWhats/zapbot.py”, line 10, in _init_
self.driver = webdriver.chrome(executable_path=r’./chromedriver.exe’, Chrome_options=options)
TypeError: ‘module’ object is not callable
O MEU NAO ENVIOU NAO, FIZ TUDO COMO ORIENTADO, VEIO ESSA MSG
IndentationError: unexpected indent
PS D:\SOFTWARE\Robo whats\bot whats> & C:/Users/RALLY/AppData/Local/Programs/Python/Python38-32/python.exe “d:/SOFTWARE/Robo whats/bot whats/whatsapp_bot.py”
A indentação está incorreta, veja se o espaçamento está correto em todas as linhas do seu código.
Se nunca ouviu falar sobre identação no python veja aqui https://www.portugal-a-programar.pt/forums/topic/72954-resolvido-uma-correcta-indenta%C3%A7%C3%A3o/
Olá ete é um novo comentário.
Gostei muito do treinamento, mas o meu ainda não está funcionando. como eu tinha outras instalações antigas de Python no notebook e desinstalei tudo. Começou a dar problema de path, a instalação não estava consertando sozinha, dei uma mexida nas variáveis do sistema, mas acho que não deu certo, pois o erro que sempre dá é:
Traceback (most recent call last):
File “zapbot.py”, line 33, in
bot.EnviarMensagens()
File “zapbot.py”, line 16, in EnviarMensagens
self.driver.get(‘https://web.whatsapp.com’)
AttributeError: ‘WhatsappBot’ object has no attribute ‘driver’
O programa:
from selenium import webdriver
import time
class WhatsappBot:
def _init_(self):
self.mensagem = “Boa tarde , Teste 1!”
self.grupos = [“Mano1″,”Filho”]
options = webdriver.ChromeOptions()
options.add_argument(‘lang=pt-br’)
self.driver = webdriver.Chrome(executable_path=r’./chromedriver.exe’)
self.driver = webdriver.Chrome(executable_path=r’./chromedriver.exe’, chrome_options=options)
def EnviarMensagens(self):
#Manuel Ziane
#
#
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}’]”)
time.sleep(3)
grupo.click()
chat_box = self.driver.find_element_by_class_name(‘_1Plpp’)
time.sleep(3)
chat_box.click()
chat_box.send_keys(self.mensagem)
botao_enviar = self.driver.find_element_by_xpath(“//span[@data-icon=’send’]”)
time.sleep(3)
botao_enviar.click()
time.sleep(5)
bot = WhatsappBot()
bot.EnviarMensagens()
Me dê uma luz por favor!
Estou achando que é problema com a importação do selenium. Quais deveriam ser as variáveis PATH para um bom funcionamento do Python? Já desinstalei 3 vezes o Python e nada deu certo.
Mesmo marcando Path na instalação nada acontecia. Pode ser o antivirus bloqueando?
Pausei o antivirus e funcionou!
Muito bom… parabéns!!! Aqui deu erro. Ele até abre a janela pra eu ler o QRCode mas não faz nada além disso. Exibe o erro no console:
DeprecationWarning: use options instead of chrome_options
self.driver = webdriver.Chrome(
[15508:7616:0504/151414.548:ERROR:configuration_policy_handler_list.cc(90)] Unknown policy: EnableCommonNameFallbackForLocalAnchors
[15508:7616:0504/151414.710:ERROR:configuration_policy_handler_list.cc(90)] Unknown policy: EnableCommonNameFallbackForLocalAnchors
DevTools listening on ws://127.0.0.1:56095/devtools/browser/d88cff25-66a6-45cc-905b-a7066325d3df
[15508:7616:0504/151414.949:ERROR:browser_switcher_service.cc(238)] XXX Init()
[15508:7616:0504/151424.666:ERROR:device_event_log_impl.cc(162)] [15:14:24.675] Bluetooth: bluetooth_adapter_winrt.cc:1055 Getting Default Adapter failed.
Traceback (most recent call last):
File “c:/Users/G7 Workstation 4/Documents/Bot WhatsApp/zapbox.py”, line 36, in
bot.EnviarMensagens()
File “c:/Users/G7 Workstation 4/Documents/Bot WhatsApp/zapbox.py”, line 20, in EnviarMensagens
campo_grupo = self.driver.find_element_by_xpath(
File “C:\Program Files (x86)\Python38-32\lib\site-packages\selenium\webdriver\remote\webdriver.py”, line 394, in find_element_by_xpath
return self.find_element(by=By.XPATH, value=xpath)
File “C:\Program Files (x86)\Python38-32\lib\site-packages\selenium\webdriver\remote\webdriver.py”, line 976, in find_element
return self.execute(Command.FIND_ELEMENT, {
File “C:\Program Files (x86)\Python38-32\lib\site-packages\selenium\webdriver\remote\webdriver.py”, line 321, in execute
self.error_handler.check_response(response)
File “C:\Program Files (x86)\Python38-32\lib\site-packages\selenium\webdriver\remote\errorhandler.py”, line 242, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {“method”:”xpath”,”selector”:”//span[@title=’Família – Grupo’]”}
(Session info: chrome=81.0.4044.129)
Sabe o que poderia ser?
Boa noite meu amigo, Desde já parabéns pelo vídeo e o tutorial muito top mesmo, no meu deu um erro mais da pra ver nítido que é na parte da mensagens para o grupo o boot vai fazendo oque é pra fazer mais na hora de escrever a mensagem não acontence.
o erro é esse
zapbot.py:13: DeprecationWarning: use options instead of chrome_options
self.driver = webdriver.Chrome(
DevTools listening on ws://127.0.0.1:59487/devtools/browser/e5515c54-72f0-44a2-a07a-a6a278b16ad3
[12152:7176:0505/004749.691:ERROR:browser_switcher_service.cc(238)] XXX Init()
[12152:7176:0505/004758.275:ERROR:device_event_log_impl.cc(162)] [00:47:58.276] Bluetooth: bluetooth_adapter_winrt.cc:1055 Getting Default Adapter failed.
Traceback (most recent call last):
File “zapbot.py”, line 36, in
bot.EnviarMensagens()
File “zapbot.py”, line 24, in EnviarMensagens
chat_box = self.driver.find_element_by_class_name(‘_13mgZ’)
File “C:\Users\User\AppData\Local\Programs\Python\Python38-32\lib\site-packages\selenium\webdriver\remote\webdriver.py”, line 564, in find_element_by_class_name
return self.find_element(by=By.CLASS_NAME, value=name)
File “C:\Users\User\AppData\Local\Programs\Python\Python38-32\lib\site-packages\selenium\webdriver\remote\webdriver.py”, line 976, in find_ele self.error_handler.check_response(response)
File “C:\Users\User\AppData\Local\Programs\Python\Python38-32\lib\site-packages\selenium\webdriver\remote\errorhandler.py”, line 242, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {“method”:”css selector”,”selector”:”._13mgZ”}
(Session info: chrome=81.0.4044.129)
PS C:\Users\User\Desktop\bot_whatsapp_envio_mensagens-master>
PS C:\Users\User\Desktop\bot_whatsapp_envio_mensagens-master>
PS C:\Users\User\Desktop\bot_whatsapp_envio_mensagens-master> py.exe zapbot.py
zapbot.py:13: DeprecationWarning: use options instead of chrome_options
self.driver = webdriver.Chrome(
DevTools listening on ws://127.0.0.1:60212/devtools/browser/5947e19f-9b2e-473a-bcb6-c14fb29a8518
[8872:12992:0505/005531.454:ERROR:browser_switcher_service.cc(238)] XXX Init()
[8872:12992:0505/005539.693:ERROR:device_event_log_impl.cc(162)] [00:55:39.693] Bluetooth: bluetooth_adapter_winrt.cc:1055 Getting Default Adapter failed.
Traceback (most recent call last):
File “zapbot.py”, line 36, in
bot.EnviarMensagens()
File “zapbot.py”, line 24, in EnviarMensagens
chat_box = self.driver.find_element_by_class_name(‘_13mgZ’)
File “C:\Users\User\AppData\Local\Programs\Python\Python38-32\lib\site-packages\selenium\webdriver\remote\webdriver.py”, line 564, in find_element_by_class_name
return self.find_element(by=By.CLASS_NAME, value=name)
File “C:\Users\User\AppData\Local\Programs\Python\Python38-32\lib\site-packages\selenium\webdriver\remote\webdriver.py”, line 976, in find_element
return self.execute(Command.FIND_ELEMENT, {
File “C:\Users\User\AppData\Local\Programs\Python\Python38-32\lib\site-packages\selenium\webdriver\remote\webdriver.py”, line 321, in execute
self.error_handler.check_response(response)
File “C:\Users\User\AppData\Local\Programs\Python\Python38-32\lib\site-packages\selenium\webdriver\remote\errorhandler.py”, line 242, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {“method”:”css selector”,”selector”:”._13mgZ”}
(Session info: chrome=81.0.4044.129)
Ola, meu nome eh Ingrid e estou fazendo esse curso de javascript.
Amigo, como eu faço para o robô ficar floodando a mensagem repetidamente???
{
“resource”: “/c:/Users/Sandra/Desktop/bot whatsapp/Whatsapp_bot.py”,
“owner”: “python”,
“code”: “syntax-error”,
“severity”: 8,
“message”: “unexpected indent (, line 11)”,
“source”: “pylint”,
“startLineNumber”: 11,
“startColumn”: 13,
“endLineNumber”: 11,
“endColumn”: 13
}
como resolvo esse erro por grntileza
tenho essa versao de codigo
[editei seu código, porque o erro já está na primeira parte que comentou,]
aguardo obrigada
[editei seu código, porque o erro já está na primeira parte que comentou,]
“message”: “unexpected indent (, line 11)”,
Verifique a identação do código, que está diferente do que passei.
Caso não saiba o que é identação, eu estou me referindo aos espaços entre cada linha
Fala pessoal, consegui rodar o tutorial!
Meu objetivo é criar um bot de diálogo de atendimento.
Vou listar os problemas que eu tive e como eu resolvi.
1. Importação da classe webdriver (NameError: name ‘webdriver’ is not defined)
Adicionei no inicio do code a linha: from selenium import webdriver
2. Indentação do conteúdo da função EnviarMensagens()
Shift + TAB no conteúdo que tava deslocado.
3. Traceback… DeprecationWarning: use options instead of chrome_options
Na linha,
self.driver = webdriver.Chrome(executable_path=r’./chromedriver.exe’, chrome_options=options)
troquei “chrome_options” por “options”, ficando “options=options”
4. Traceback… in EnviarMensagens
chat_box = self.driver.find_element_by_class_name(‘_13mgZ’)
Cliquei com o botão direito no header do WhatsAppWeb, e escolhi a opção “Inspecionar”.
A tela é divida e o código fonte da página é exibido.
Primeiro procurei por “_13mgZ” e o resultado foi zero ocorrências.
Quer dizer que o nome da classe mudou e precisava ser atualizado no Python.
Procurei no código fonte da página pelo nome do grupo desejado. Encontrei:
Grupo Teste
No Python, no lugar de “_13mgZ”, tentei usar cada uma das classes (“_1wjpf”, “_3NFp9”, “_3FXB1”). Mas eu recebi os logs:
Message: element not interactable
ou
Message: stale element reference: element is not attached to the page document
Então percebi que precisava modificar um pouco o code. Ficou assim:
…
# Esta linha serviu para abrir o chat do grupo.
chat_box = self.driver.find_element_by_class_name(‘_3NFp9′)
time.sleep(3)
# Esta linha e a próxima serviram para encontrar o campo onde o texto é digitado.
# Sem esta linha, é encontrado o campo de texto lateral de pesquisa.
chat_box = self.driver.find_element_by_xpath(“//div[@id=’main’]”)
# Foi preciso inspecionar elemento para identificar a classe “_2S1VP”.
chat_box = chat_box.find_element_by_class_name(‘_2S1VP’)
chat_box.click()
…
OBS 1: Na árvore do código fonte da página, outras classes além de “_3NFp9” serviram para abrir o chat do grupo. Como eu deixei 5 conversas visíveis, as classes que apareciam 5 vezes eram candidatas a serem usadas.
OBS 2: No futuro, é possível que as classes sejam novamente atualizadas. Neste caso, a minha recomendação é inspecionar os elementos e identificar as classes atuais.
Já usei o Selenium em Java em outras aplicações.
Não sei se usar o Selenium é o ideal para criar um bot de atendimento.
Vou continuar procurando outros métodos.
Agradeço pelo post e espero ter contribuído.
Abraços.
O comentário acabou omitindo texto, exibindo apenas “Grupo Teste” por causa do uso das tags .
Quando eu procurei no código fonte da página pelo nome do grupo desejado, encontrei:
span dir=”auto” title=”Grupo Teste” class=”_1wjpf _3NFp9 _3FXB1″
Jhonatan, fantástico vou baixar essa semana. E tem alguma ferramenta que consigo usar o mesmo Whats em mais que um computador ? Vi que tem mais produtos pagos e caros, pois é mensal.
Obrigado pelo curso de Javascript você é demais cara <3
Ola boa tarde!
Primeiramente quero parabenizar pelo conteúdo, estou aprendendo python e seu projeto foi muito bacana para o aprendizado.
Agora se puder gostaria de uma ajuda sua Jhonatan. estou com problema na execução do meu mmeu programa, mais precisamente no codigo {chat_box.send_keys(self.mensagem)} – aparece a mensagem “ocorreu excecao: ElementNotinTeractableException”
mensagem: element not interactable
Nao consegui resolver.
esqueci de postar meu código para entender melhor.
@JHONATAN DE SOUZA boa tarde!
Consegue me ajudar com esse problema?
Abrs;
Ola boa tarde!
Primeiramente quero parabenizar pelo conteúdo, estou aprendendo python e seu projeto foi muito bacana para o aprendizado.
Agora se puder gostaria de uma ajuda sua Jhonatan. estou com problema na execução do meu mmeu programa, mais precisamente no codigo {chat_box.send_keys(self.mensagem)} – aparece a mensagem “ocorreu excecao: ElementNotinTeractableException”
mensagem: element not interactable
Nao consegui resolver.
@ JHONATAN DE SOUZA Consegue me ajudar com esse problema?
Desde ja agradeco a atencao.
testando comentário
como faço para enviar imagem pelo whatsapp?
??
Acho que a pergunta dele é a mesma que eu ia fazer. Tem como usar este bot para enviar imagens? Ou ele funciona apenas com texto?
Estou com mesmo problema, ele abre o grupo mas não envia mensagem
Fazendo um experimento com o Dom
from selenium import webdriver
import time
class WhatsappBot:
def __init__(self):
# parte 1 – mensagem que você quer enviar
self.mensagem = “boa tarde”
self.grupos = [“G”]
options = webdriver.ChromeOptions()
options.add_argument(‘lang=pt-br’)
self.driver = webdriver.Chrome(executable_path=’C:/Users/pedro/Desktop/bot whats/chromedriver.exe’)
def EnviarMensagens(self):
self.driver.get(‘https://https://web.whatsapp.com/’)
time.sleep(30)
for grupo_ou_pessoa in self.grupos_ou_pessoas :
campo_grupo= self.driver.find_element_by_xpatch(f”//span[@title='{grupo_ou_pessoa}’]”)
time.sleep(3)
campo_grupo.click()
chat_box = self.driver.find_element_by_class_name(‘_1Plpp’)
time.sleep(3)
chat_box.click()
chat_box.send_keys(self.mensagem)
botao_enviar = self.driver.find_element_by_xpatch(“//span[@data-icon=’send’]”)
time.sleep(3)
botao_enviar.click()
time.sleep(5)
bot = WhatsappBot()
bot.EnviarMensagens()
creio que digitei tudo certo porem ele da erro no bot.EnviarMensagens() ja tentei de tudo e não consigo resolver
Olá, estou fazendo seu curso de JavaScript. Ele é ótimo, obrigado por disponibilizá-lo!
Olá! Quero agradecer antes pelo tutorial! Mas no meu esta dando erro seguinte mensagem
“line 7, in __init__
options = webdriver.ChromeOptions()
NameError: name ‘webdriver’ is not defined”
Deve ser por causa desse webdriver difere a versao atual do meu Google sendo que não tem pra donwload. Versão atual chrome 83.0.4103.61 (Versão oficial) 64 bits
Tem algo pode ser feito?
E como faço pra mandar pra lista dos meus contatos números não salvos tem como?
Aprendendo essa bagaca. Vamos la!
Parabéns pela didática. Consegui seguir todo o tutorial. Estou rodando em Linux Mint 64, Gogle Chrome 83.
Chega a abrir o Whatsapp Web, mas dá o seguinte erro:
File “/home/vinicius/Área de Trabalho/Bot Whatsapp/venv/lib/python3.6/site-packages/selenium/webdriver/remote/errorhandler.py”, line 242, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.InvalidSelectorException: Message: invalid selector: Unable to locate an element with the xpath expression //span[@title={grupo}] because of the following error:
SyntaxError: Failed to execute ‘evaluate’ on ‘Document’: The string ‘//span[@title={grupo}]’ is not a valid XPath expression.
(Session info: chrome=83.0.4103.97)
Vi que mais alguns tem um erro parecido.
Ola..
Excelente post..
Fiz o procedimento mas esta apresentando o seguinte erro:
AttributeError: ‘WhatsappBot’ object has no attribute ‘driver’
Alguém poderia me dar uma dica?
Obrigado
Olá Mestre, Boa noite!
Poderia fazer no Pycharm? É possível criar uma aplicação para os usuários utilizarem para os seus contatos?
Aguardando a abertura das inscrições do seus curso.
No aguardo. Obrigado.
Luiz Bruno
Caro Jonathan.
Primeiramente valeu pelo video, muito bom e um projeto bem legal para usar os loops e variables que eu particularmente tenho aprendido vendo os videos teus.
Quanto ao projeto de automacao de mensagens eu fiquei trancado em um erro de sintax na linha 22
File “zapbot.py”, line 22
field_group = self.driver.find_element_by_xpath(f”//span[@title='{group}’]”)
^
SyntaxError: invalid syntax
o problema que eu identifiquei (eu acho) foi que a funcao str representada pelo f, ta causando um erro que eu nao consigo resolver sozinho. eu tentei substituir a linha (f”//span[@title='{group}’]”) por (str(“//span[@title='{group}’]”)), e o programa abriu porem na hora de encontrar os grupos um erro similar ocorreu.
quando eu subtituo a parte {group} no codigo por um nome de um dos meus grupos, (sem o f no inicio do parentses) a mensagem eh enviada (se eu tenho 5 grupos diferentes em self.groups a mensagem eh mandada para o mesmo grupo 5 vezes)
enfim, se puder dar uma luz ficarei muito agradecido pois tenho certeza que a hora que eu descobrir o bug, vai ser algo muito imbecil que vai me irritar profundamente 🙂
abraco e obrigado pela atencao
ps essa indicacao ^ refere-se ao ultimo ” da linha antes do )
Fazendo o exercício da penúltima aula.
Olá, estou terminando o curso de javascript, que por sinal é ótimo, para assumir uma vaga específica na empresa onde trabalho. Muito obrigado pela iniciativa. Sou ainda um iniciante, mas com bastante vontade de aprendizado.
ola boa noite
o meu aparece uma mensagem assim
Instance of ‘zapbot’ has no ‘EnviarMensagens’ member
{
“resource”: “/c:/Users/alean/Desktop/boot whatsapp/zapbot.py”,
“owner”: “python”,
“code”: “no-member”,
“severity”: 8,
“message”: “Instance of ‘zapbot’ has no ‘EnviarMensagens’ member”,
“source”: “pylint”,
“startLineNumber”: 33,
“startColumn”: 1,
“endLineNumber”: 33,
“endColumn”: 1
}
o que estou errando
obrigado
Olá, meu nome é Evaldo, estou fazendo o seu curso de js
Continue o bom trabalho crl
test
Cara, acabei encontrando este artigo sem querer, mas parece ser muito proveitoso, tentarei reproduzir depois, desde já agradeço por compartilhar seus conhecimentos.
Estou com esse problema:
AttributeError: ‘WhatsappBot’ object has no attribute ‘driver’
PS D:\Meus Documentos\Desktop\Bot Whatsapp> py.exe zapbot.py
Olá, eu fiz o funcionou perfeitamente.
Tem como pular a verficação por QR CODE?
Tipo ele conectar automaticamente??
Comentando pelo console da pagina, sou iniciantes e agradeç os ensinamentos professor!
Olá meu nome é Allan e eu estou fazendo este ótimo curso de javaScript, muito obrigado por compartilhar o seu conhecimento conosco.
VAIIIII CORINTHIIIIANS
Esse curso é legal
Olá! Meu nome é Henrique e estou finalizando seu curso de JavaScript no YouTube, e inclusive estou enviando essa mensagem pelo Console conforme explicado no curso. Sensacional! Meus parabéns pelo conteúdo e muito obrigado por compartilhar!!
Bom dia JHONATAN, conheci seu trabalho hoje e primeiramente meus parabéns, virei fã.
No entanto, estou elaborando um bot onde o objetivo dele é responder automaticamente as pessoas que entrarem em contato, considerando que eu não tenho os usuários delas salvos.
Apenas testando
Opa, boa noite
Tive um problema,onde, no terminal se da a seguinte mensagem:
PS C:\Users\Ultrabook\Desktop\Bot Whatsapp> & C:/Users/Ultrabook/AppData/Local/Programs/Python/Python38-32/python.exe “c:/Users/Ultrabook/Desktop/Bot Whatsapp/whatsapp_bot.py”ms/Python/Python38-32/python.exe “c:/Users/Ultrabook/Desktop/Bot Whatsapp/whatsapp_boptions instead of chrome_optionst.py”
c:/Users/Ultrabook/Desktop/Bot Whatsapp/whatsapp_bot.py:13: DeprecationWarning: use options instead of chrome_options f12eb647714
self.driver = webdriver.Chrome(
DevTools listening on ws://127.0.0.1:50950/devtools/browser/e358591d-3225-40e5-86a0-ff12eb647714
Traceback (most recent call last):
File “c:/Users/Ultrabook/Desktop/Bot Whatsapp/whatsapp_bot.py”, line 36, in
bot.EnviarMensagens()
File “c:/Users/Ultrabook/Desktop/Bot Whatsapp/whatsapp_bot.py”, line 24, in EnviarMensagens
chat_box = self.driver.find_element_by_class_name(‘_13mgZ’)
File “C:\Users\Ultrabook\AppData\Local\Programs\Python\Python38-32\lib\site-packages\selenium\webdriver\remote\webdriver.py”, line 564, in find_element_by_class_name
return self.find_element(by=By.CLASS_NAME, value=name)
File “C:\Users\Ultrabook\AppData\Local\Programs\Python\Python38-32\lib\site-packages\selenium\webdriver\remote\webdriver.py”, line 976, in find_element
return self.execute(Command.FIND_ELEMENT, {
File “C:\Users\Ultrabook\AppData\Local\Programs\Python\Python38-32\lib\site-packages\selenium\webdriver\remote\webdriver.py”, line 321, in execute
self.error_handler.check_response(response)
File “C:\Users\Ultrabook\AppData\Local\Programs\Python\Python38-32\lib\site-packages\selenium\webdriver\remote\errorhandler.py”, line 242, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {“method”:”css selector”,”selector”:”._13mgZ”}
(Session info: chrome=84.0.4147.105)
PS C:\Users\Ultrabook\Desktop\Bot Whatsapp> [5172:5296:0804/211123.879:ERROR:device_event_log_impl.cc(208)] [21:11:23.880] Bluetooth: bluetooth_adapter_winrt.cc:736 GetBluetoothAdapterStaticsActivationFactory failed: Classe nÒo registrada (0x80040154)
Agradeceria a ajuda
Pingback: Como criar um bot no telegram - chatbot DO ZERO - Dev Aprender
Dev, mt show cara. Como eu adapto esse código pra enviar a mensagem pra contatos individuais? (São muitos kk) todos estão salvos no telefone.
Parabéns pelo vídeo, muito bom!
Funcionou aqui apenas para um nome, todos os outros que coloco ele diz que não localiza, já conferi os nomes e estão escritos corretamente, mas não localiza.
O que pode estar acontecendo?
bom dia
Achei muito interessante a aula, você foi diretamente ao ponto, foi confiante, isso é importante para quem ta iniciando programação, ((esse é meu caso)), segui suas dicas mas acho que houve vacilo da minha parte….
_________________________________________________
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
import time
class WhatsappBot:
def _init_(self):
# Parte 1 – A mensagem que você quer enviar
self.mensagem = “Bom dia pessoal, veja o video que acabou de sair https://www.youtube.com”
# Parte 2 – Nome dos grupos ou pessoas a quem você deseja enviar a mensagem
self.grupos_ou_pessoas = [“GRUPO DA FAMÍLIA”, “GRUPO DE VENDAS”]
options = webdriver.ChromeOptions()
options.add_argument(‘lang=pt-br’)
self.driver = webdriver.Chrome(
executable_path=r’./chromedriver.exe’, chrome_options=options)
def EnviarMensagens(self):
self.driver.get(‘https://web.whatsapp.com’) >>>>>>>erro na linha 18
time.sleep(30)
for grupo_ou_pessoa in self.grupos_ou_pessoas:
campo_grupo = self.driver.find_element_by_xpath(
f”//span[@title='{grupo_ou_pessoa}’]”)
time.sleep(3)
campo_grupo.click()
chat_box = self.driver.find_element_by_class_name(‘_13mgZ’)
time.sleep(3)
chat_box.click()
chat_box.send_keys(self.mensagem)
botao_enviar = self.driver.find_element_by_xpath(
“//span[@data-icon=’send’]”)
time.sleep(3)
botao_enviar.click()
time.sleep(5)
bot = WhatsappBot()
bot.EnviarMensagens()>>>>>>>erro na linha 36
________________________________________________________________________________
resultado TERMINAL
Windows PowerShell
Copyright (C) Microsoft Corporation. Todos os direitos reservados.
Experimente a nova plataforma cruzada PowerShell https://aka.ms/pscore6
PS E:\newbot> & C:/Users/studio/AppData/Local/Programs/Python/Python38-32/python.exe e:/newbot/whatsapp_bot.py
Traceback (most recent call last):
File “e:/newbot/whatsapp_bot.py”, line 36, in
bot.EnviarMensagens()
File “e:/newbot/whatsapp_bot.py”, line 18, in EnviarMensagens
self.driver.get(‘https://web.whatsapp.com’)
AttributeError: ‘WhatsappBot’ object has no attribute ‘driver’
PS E:\newbot>
Fazendo o curso de Javascript! Valeu!
Boa tarde! Esse bot pode ser usado por muito tempo sem que o WhatsApp bloqueie o número ou esse problema ainda não foi resolvido?
Como faço no robô de envios WhatsApp com os contatos que tem Barra “/” e Emojis?
Cara vc é muito inteligente, obrigada por compartilhar seu conhecimento, vou demorar uns 3 dias pra fazer isso! rsrsrsrs Valeu!
Obrigado tatiana!
Muito boa a aula!
Seria possível implementar um código para adição de imagens?
Tentei mas estou enfrentando vários problemas:
def enviar_foto(foto):
#class _295He
image_box = driver.find_element_by_xpath(‘//div[contains(@class,”_295He”)]’)
image_box.click()
#_1dxx-
input_box = driver.find_element_by_class_name(“_1dxx-“)
input_box.send_keys(foto)
input_box.send_keys(Keys.ENTER)
Essa função recebe o endereço da foto, mas no whats é aberto a tela de busca de imagens e para nisso!
Se puder dar uma luz aqui agradeço!
Abraço!
Olá…
É possível reconhecer mensagens recebidas no Whatsapp Web para usar como variável para envio de respostas automáticas?
Olá meu nome é Gabriel e estou fazendo o curso de Javascript.
Testando o Dom
Teste JavaScript DOM
Cara nao sou dev, fiz e rodou de cara.
Ja dei asas e usei outra parada que mantém session e tudo mais.
Meus parabéns a todos os que se dispõem a ensinar e minhas condolências tbm por terem que ter a paciência de explicar um simples erro de path para que se mete a fazer uma automação sem ao menos saber usar o bendito computador.
Olá isto é um comentario