-2

Trying to send a message on Facebook using Python. All the step works until putting the text in textarea to send. Getting error code:

Unable to locate element: {"method":"css selector","selector":"div textarea.uiTextareaNoResize"}

Here is the whole code:

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import sched, time, timeit
import random
import getpass
import sys

driver = webdriver.Chrome('C:\path\chromedriver.exe')
driver.get('https://www.facebook.com/')

username_box = driver.find_element_by_id('email')
username_box.send_keys("USEREMAIL")
passElem = driver.find_element_by_id("pass")
passElem.send_keys("USERPASS")
passElem.send_keys(Keys.RETURN)
userTargetUrl = "https://www.facebook.com/messages/t/" + "USERTARGET NAME"
driver.get(userTargetUrl)

elem = driver.find_element_by_css_selector("div textarea.uiTextareaNoResize")

elem.send_keys("Test")
elem.send_keys(Keys.RETURN)
driver.find_element_by_id("u_0_t").click()

Error occurs here:

elem = driver.find_element_by_css_selector("div textarea.uiTextareaNoResize")

elem.send_keys("Test")
elem.send_keys(Keys.RETURN)
driver.find_element_by_id("u_0_t").click()

Getting this message on the console:

selenium.common.exceptions.NoSuchElementException: 
Message: no such element: 
Unable to locate element: {"method":"css selector","selector":"div textarea.uiTextareaNoResize"}
      (Session info: chrome=63.0.3239.132)
      (Driver info: chromedriver=2.35.528161 (5b82f2d2aae0ca24b877009200ced9065a772e73),platform=Windows NT 10.0.15063 x86_64)

This code here fails:

elem = driver.find_element_by_css_selector("div textarea.uiTextareaNoResize")

In this picture you can see where I want my message to be written.

1 Answers1

0

You have to set a variable to store the graph.request response, then print it:

token = 'access_token'
graph = facebook.GraphAPI(access_token=token, version="2.11")
response = graph.request('search', {'q': 'Mark Zuckerberg', 'type': 'user'})
print(response)

Also it isn't neccesary to log in via Selenium if you have the access_token value.

Kevin Castro
  • 103
  • 1
  • 11