Я использую python и селен для отправки сообщения цели.
Я могу успешно открыть веб-сайт WhatsApp, но после этого я не могу открыть папку входящих сообщений контакта, которому я хочу отправить сообщение. .
Вот код на данный момент. Первая часть является обычной, где я должен открыть веб-страницу. Это случилось без проблем. Следующая часть - открыть контакт, чтобы отправить входящее сообщение. Я попробовал два разных метода для этого. Ни один из них не работал.
Общая часть:
#WhatsApp Automation Project
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from time import sleep
#Open WhatsApp web
driver = webdriver.Chrome('D:/Drivers/chromedriver')
driver.get('https://web.whatsapp.com')
#The code should wait sometime for the user to scan the bar code.
sleep(15)
print('Code ended its pause.')
#chose whom to send messaage.
target = 'Name_in_Contacts'
#choose the message to send.
string = 'Guess who learned to autoate WhatsApp using Python.'
Метод 1:
# what I initially thought of doing
search = driver.find_element_by_class_name("_3FeAD uu8jX")
#class_name is the name of the label of the search box in whatsapp web
#alternatively I had used class name('_3u328 copyable-text selectable-text') , a div class inside the #label class\
#both the class name give the same error.
#check the image of the HTML code.
search.send_keys(target)
![Image of HTML code.](https://i.stack.imgur.com/Dip1H.png)
Выдает ошибку:
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"css selector","selector":"._3FeAD uu8jX"}
(Session info: chrome=80.0.3987.132)
Метод 2: Этот метод скопирован из одного из решений из Stack OverFlow.
#Stack OverFlow method. Didn't work.
#Open searcch box
search = WebDriverWait(driver,5).until(EC.presence_of_element_located((By.CLASS_NAME, "_3u328 copyable-text selectable-text")))
#Alternatively, the other class_name of label was also used.
#Both gave the same error.
search.send_keys(target)
Выдает ошибку:
raise TimeoutException(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message:
Прошло уже больше месяца, и я не могу решить проблему.
Пожалуйста, не закрывайте вопрос, сказав, что он уже задан. Я знаю, что есть множество вопросов по этой теме c, но ни один из них не помог мне, и было бы очень полезно, если бы вы дали мне решение, конкретное c для моей проблемы.
Заранее благодарю.