hi I am using python to broadcast message to a list of number in spreadsheet.
ran the program, browser load and typed out the message but wont send. anything wrong with code?
import time
import pandas as pd
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
# Load the spreadsheet
df = pd.read_excel('updated_test.xlsx') # spreadsheet name
# Extract phone numbers
phone_numbers = df['Phone Numbers'].tolist()
# Define the message you want to send
message = "Hello, this is a test message!"
# Setup Selenium with Safari
driver = webdriver.Safari()
# Open WhatsApp Web and set up the session manually
print("Opening WhatsApp Web. Please scan the QR code and set up WhatsApp Web manually.")
input("Press Enter when ready...")
# Loop through each phone number and send the message
for number in phone_numbers:
try:
# Construct the WhatsApp URL with the phone number and message
url = f"https://web.whatsapp.com/send?phone={number}&text={message}"
# Open the URL
driver.get(url)
# Wait until the message input field is visible and message is loaded
WebDriverWait(driver, 60).until(
EC.presence_of_element_located((By.CSS_SELECTOR, "div[data-tab='1']"))
)
# Give time for the message to appear in the input field
time.sleep(2) # Adjust if necessary
# Wait until the send button is clickable
send_button = WebDriverWait(driver, 60).until(
EC.element_to_be_clickable((By.CSS_SELECTOR, "button[data-tab='11']"))
)
# Click the send button using JavaScript as a fallback
driver.execute_script("arguments[0].click();", send_button)
# Confirm the message is sent (optional)
print(f"Message sent to {number}")
# Wait a bit before moving to the next number to ensure the process completes
time.sleep(5) # Adjust if necessary
except Exception as e:
print(f"Failed to send message to {number}: {str(e)}")
driver.save_screenshot(f'screenshot_{number}.png') # Take a screenshot for debugging
# Close the WebDriver session
driver.quit()
I ve make sure that selector of send button correct. but still wont send. message just typed out and then proceed to next phone number from the spreadsheet
New contributor
khalid imam is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.