import sys, time
from datetime import date, datetime
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.support.ui import WebDriverWait
from selenium.common.exceptions import NoSuchElementException
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
import openpyxl
from time import sleep
driver = None
Link = "https://web.whatsapp.com/"
wb = openpyxl.load_workbook(r"C:\Users\Kenil Patel\Desktop\Text.xlsx")
data = wb['Data']
name1 = data['A2'].value
msg1 = data['B2'].value
def login():
global wait, driver, Li
chrome_options = Options()
chrome_options.add_argument(r'user-data-dir=C:\Users\Kenil Patel\AppData\Local\Google\Chrome\User Data\Default')
print("Trying to Open Whatsapp Web")
driver = webdriver.Chrome(executable_path= r'C:\Users\Kenil Patel\AppData\Local\SeleniumBasic\chromedriver.exe', options=chrome_options)
wait = WebDriverWait(driver, 20)
driver.get(Link)
driver.maximize_window()
print("Logged In")
#time.sleep(15)
def send_message(name,msg,count):
user_group_xpath = '//span[@title = "{}"]'.format(name)
for retry in range(3):
try:
sleep(3)
wait.until(EC.presence_of_element_located((By.XPATH, user_group_xpath))).click()
break
except Exception:
print("retry:{} {} not found in your contact list".format(retry,name))
if retry==2:return
msg_box = driver.find_element_by_xpath('//*[@id="main"]/footer/div[1]/div[2]/div/div[2]')
for index in range(count):
msg_box.send_keys(msg)
driver.find_element_by_xpath('//*[@id="main"]/footer/div[1]/div[3]/button').click()
print("Message send successfully.")
if __name__ == "__main__":
# Let us login and Scan We need to scan only once
login()
send_message(name1, msg1, 1)
sleep(10)
driver.close() # Close the Open tab
driver.quit()