Почему я не могу заставить Selenium написать сообщение в моем WhatsApp Web, используя Python 3.8 и Chrome? - PullRequest
0 голосов
/ 30 января 2020

Итак, я использую этот скрипт:

from selenium import webdriver 
from selenium.webdriver.support.ui import WebDriverWait 
from selenium.webdriver.support import expected_conditions as EC 
from selenium.webdriver.common.keys import Keys 
from selenium.webdriver.common.by import By 
import time 

chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--no-sandbox')
driver = webdriver.Chrome('C:/Users/N-Thalpy/Documents/NT/py/chromedriver.exe', chrome_options=chrome_options) 

driver.get("https://web.whatsapp.com/") 
wait = WebDriverWait(driver, 600) 


target = '"Batman"'

string = "Python 3.8"

x_arg = '//span[contains(@title,' + target + ')]'
group_title = wait.until(EC.presence_of_element_located(( 
    By.XPATH, x_arg))) 
group_title.click() 
inp_xpath = '//div[@class="_3u328"][@dir="ltr"][@data-tab="1"]'
input_box = wait.until(EC.presence_of_element_located(( 
    By.XPATH, inp_xpath))) 
for i in range(100): 
    input_box.send_keys(string + Keys.ENTER) 
    time.sleep(1) 

И Chrome открывается в web.whatsapp.com, как и ожидалось, - затем он открывает чат «Бэтмена». Тем не менее, он ничего не пишет. Я проверил атрибуты и даже попытался уточнить их c, но, похоже, ничего не работает. Я попробовал это без опции песочницы и все еще ничего.

Редактировать : единственное сообщение, которое я получаю с консоли py.exe, это:

"[13920: 4684: 0130 / 154024.795: ОШИБКА: wmi_refresher. cc (129)] Невозможно добавить перечисление Win32_PerfRawData_PerfDisk_PhysicalDisk. "

1 Ответ

0 голосов
/ 30 января 2020

Мне удалось решить эту проблему следующим образом:

  • Загрузка правильной версии хроматографа , поскольку я использовал Chrome 79 и драйвер для Chrome 80.
  • Поиск ВСЕХ атрибутов div, включая проверку орфографии, contenteditable и dir (не знаю, насколько это актуально, но на всякий случай).
...