SHARE
TWEET

Untitled

a guest May 21st, 2019 94 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. from selenium import webdriver
  2. from selenium.webdriver.firefox.options import Options
  3. from time import sleep
  4. from selenium.webdriver.support.ui import WebDriverWait
  5. from selenium.webdriver.support import expected_conditions as EC
  6. from selenium.webdriver.common.by import By
  7. from bs4 import BeautifulSoup
  8. from datetime import datetime
  9. import requests
  10. import pyautogui
  11. import os
  12.  
  13.  
  14. dir_path = os.getcwd()
  15. chrome = dir_path+'\chromedriver.exe'
  16.  
  17. #options    = Options()
  18. options = webdriver.ChromeOptions()
  19. options.add_argument(r"user-data-dir="+dir_path+"\profile\wpp")
  20. #options.set_headless(headless=True)
  21. browser    = webdriver.Chrome(chrome, chrome_options=options) # webdriver.Firefox() #firefox_options=options)
  22.  
  23. opcoes     = "\n Para que possamos ajuda-lo, favor digite uma das opções abaixo: \n  01 - Consultar valores em aberto \n 02 - Suporte com a equipe de T.I. \n 99 - Para finalizar o atendimento \n"
  24. now        = datetime.now()
  25. hora       = now.hour
  26. saudacao   = "Bom"
  27. contador   = 0
  28. opcao      = "."
  29. browser.get('https://web.whatsapp.com')
  30. print('Scan and get started')
  31.  
  32.  
  33. bot_users = {}
  34.  
  35. while True:
  36.     unread = browser.find_elements_by_class_name("OUeyt")
  37.     if len(unread) > 0:
  38.        
  39.         ele = unread[-1]
  40.         action = webdriver.common.action_chains.ActionChains(browser)
  41.         action.move_to_element_with_offset(ele, 0, -20)
  42.         try:
  43.             action.click()
  44.             action.perform()
  45.             action.click()
  46.             action.perform()
  47.         except:
  48.             pass
  49.        
  50.         # O erro provavelmente se encontra aqui.
  51.         # Dado que esse método "find_element_by_class_name"
  52.         # Retorna a primeira aparição do elemento.
  53.         #
  54.         # Vale notar que o número de whatsapp sempre tem a mesma class  
  55.         # Logo, após o envio da primeira mensagem ao primeiro usuário
  56.         # Este usuário fica em primeiro lugar na lista lateral na tela
  57.         # E o método o pega como nome, mesmo após a tela principal de outro usuário
  58.         # Estar aberta, pois o nome do usuário o qual a tela principal se abre só
  59.         # Fica no topo da lista lateral após o envio da primeira mensagem
  60.         name = browser.find_element_by_class_name("_2wP_Y").text
  61.              
  62.         message = browser.find_elements_by_class_name("vW7d1")[-1]
  63.         opcao = message.text[0:len(message.text)-5]
  64.         nome_corrigido = name[0:len(name)-(7+len(opcao))]
  65.         bot_users[nome_corrigido] = True
  66.  
  67.        
  68.         if ('01' in opcao):
  69.             if nome_corrigido in bot_users:
  70.                 text_box = browser.find_element_by_class_name("_2S1VP")
  71.                 response = "Você optou pela opção 01 \n Favor digite o numero do seu registro CGADB"
  72.                 print('Opção->'+opcao)
  73.                 contador = 000
  74.                 text_box.send_keys(response)
  75.         elif ('02' in opcao):
  76.             if nome_corrigido in bot_users:
  77.                 text_box = browser.find_element_by_class_name("_2S1VP")
  78.                 response = "Você optou pela opção 02 \n nossa equipe de suporte estará iniciando o seu atendimento em alguns segundos \n"
  79.                 print('Opção->'+opcao)
  80.                 contador = 0
  81.                 text_box.send_keys(response)
  82.                 #del bot_users[name]
  83.                 #break
  84.         elif ('99' in opcao):
  85.             if nome_corrigido in bot_users:
  86.                 text_box = browser.find_element_by_class_name("_2S1VP")
  87.                 response = "Obrigado por nos contatar caro Ministro"+".\n"
  88.                 print('Opção->'+opcao)
  89.                 contador = 0
  90.                 text_box.send_keys(response)
  91.                 #del bot_users[name]
  92.         else:
  93.             bot_users[name] = True
  94.             text_box = browser.find_element_by_class_name("_2S1VP")
  95.             opcao = message.text[0:len(message.text)-5]
  96.             if (contador==1):
  97.                 response = "O seu numero de Registro e "+opcao+"\n"
  98.                 contador = 1
  99.                 print('Opção->'+opcao)
  100.                 text_box.send_keys(response)
  101.             else:
  102.                 if (hora > 0 and hora < 12):
  103.                      saudacao="Bom Dia "
  104.                 if (hora > 12 and hora < 18):
  105.                      saudacao="Boa Tarde "
  106.                 if (hora > 18):
  107.                      saudacao="Boa Noite "
  108.  
  109.                 response = "Olá "+nome_corrigido+", \n A Paz do Senhor Jesus \n "+saudacao+opcoes+"\n"
  110.                 contador = 0
  111.                 print('Opção->'+opcao)
  112.                 print('\n Name ->'+nome_corrigido)
  113.                 text_box.send_keys(response)
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top