Como pular um erro e manter o loop

79 views
Skip to first unread message

Roberto Balbinotti

unread,
Jul 19, 2022, 9:17:47 AM7/19/22
to Python Brasil
Olá, não tenho experiência alguma com linguagem de programação. Estou aprendendo por manuais, videos grupos etc.
Mas não consegui encontrar na da para me ajudar a descobrir o que fiz de errado no código a seguir.
Preciso percorrer uma lista com nomes e telefones e enviar via whats. só consigo enviar o primeiro item, quando aparecer o erro gostaria de pular para o seguinte e continuar com o código rodando dentro do for até o final da lista.
Onde estou errando? E como resolvo por gentileza.

# bibliotecas do selenium
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import time
import urllib

servico = Service(ChromeDriverManager().install())
driver = webdriver.Chrome(service=servico)
driver.get("https://web.whatsapp.com/")

# já estamos com o login feito no whatsapp web

# Texto a ser enviado
texto = urllib.parse.quote('Olá, texto')
contador = 0
erro_count = 0
s = 0
erro = []

for i, mensagem in enumerate(df_enviar['cliente']):
    pessoa = df_enviar.loc[i, 'cliente']
    numero = df_enviar.loc[i, "telefone"]
    contador += 1
# Aguarda abertura e conexão do whatsapp
    while len(driver.find_elements_by_id("side")) < 1:
        time.sleep(1)

    try:
        link = f"https://web.whatsapp.com/send?phone={numero}&text={texto}"
        driver.get(link)
        xpath_value = '//*[@id="main"]/footer/div[1]/div/span[2]/div/div[2]/div[1]/div/div[1]/p'
        WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, xpath_value))).send_keys(Keys.ENTER)
        print(f'{contador} - Nome: {pessoa}')
        s = s + 1
    except:
        erro_count += 1
        erro.append([pessoa, numero])
    finally:
        continue

print(f'Resultado final => soma = {s}, último cadastro: {pessoa}, telefone: {numero}, index: {i}\n\nLista erro => {erro}')

Grato
Roberto Balbinotti
Reply all
Reply to author
Forward
0 new messages