4

Is there any whatsapp or webdriver API to access WhatsApp web without scanning QR code everytime while accessing it using selenium and chrome webdriver in python?

Noob Geek
  • 409
  • 6
  • 20

3 Answers3

4

This is What you need. This code Read QR and store it in cookies

import time
from selenium import webdriver
from selenium.webdriver.chrome.options import Options

jokes = ["You don't need a parachute to go skydiving. You need a parachute to go skydiving twice.",
    "This is Test Message."]

options = Options()
options.add_argument("--user-data-dir=chrome-data")
options.add_experimental_option("excludeSwitches", ["enable-automation"])
options.add_experimental_option('useAutomationExtension', False)

driver = webdriver.Chrome('/usr/local/bin/chromedriver', options=options)
driver.maximize_window()
driver.get('https://web.whatsapp.com')  # Already authenticated

time.sleep(20)

##################### Provide Recepient Name Here ###############################
driver.find_element_by_xpath("//*[@title='MyJakartaNumber']").click()

for joke in jokes:
 driver.find_element_by_xpath('//*[@id="main"]/footer/div[1]/div[2]/div/div[2]').send_keys(joke)
 driver.find_element_by_xpath('//*[@id="main"]/footer/div[1]/div[3]/button/span').click()
 time.sleep(10)

time.sleep(30)
driver.close()
Soroosh Gholami
  • 130
  • 2
  • 10
3

Your "WhatsApp" and "QR Code" don't tell anything to me, however if you're testing an application which requires an extra action to sign in I don't think you will be able to perform it using Selenium as it's browser automation framework.

Web applications identify users via Cookies - special HTTP Headers containing client-side information. When you start a web browser via Selenium bindings - it kicks off a clean browser session which is not authenticated in "WhatsApp" (whatever it is)

The solutions would be in:

  1. Authenticate in WhatsApp manually, store your browser profile somewhere and start Selenium by pointing it to the earlier storied profile folder
  2. Authenticate in WhatsApp manually, store your browser cookies and use WebDriver.add_cookie() function to read the stored cookies into the current clean session
Dmitri T
  • 159,985
  • 5
  • 83
  • 133
1

You can use "pywhatkit". pywhatkit is used to send messages using whatssapp web. Run:

pip install pywhatkit 

and you are good to go.

Adrian Mole
  • 49,934
  • 160
  • 51
  • 83