AttributeError пытается автоматизировать WhatsApp с помощью Selenium в Python - PullRequest
0 голосов
/ 14 апреля 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

driver = webdriver.Edge(r"C:\Users\Manan\Downloads\edgedriver_win64\msedgedriver") 
driver.get("https://web.whatsapp.com/")
wait = WebDriverWait(driver,600)
target = "Dad"
string = "message send from manan!!"
x_arg ='//span[contains(@title,'+ target + ')]'
target = wait.until(EC.presence_of_all_elements_located((By.XPATH, x_arg)))
target.click()

Может кто-нибудь помочь? Я новичок, и он всегда дает мне эту ошибку:

AttributeError: 'list' object has no attribute 'click'

1 Ответ

1 голос
/ 14 апреля 2020

presence_of_all_elements_located возвращает список веб-элементов. Это означает, что в target имеется более одного элемента. Сначала вы должны выбрать, какой из этих веб-элементов вы хотите щелкнуть, или щелкнуть их все:

targets = wait.until(EC.presence_of_all_elements_located((By.XPATH, x_arg)))
target = targets[0] # Select first one
target.click()
targets = wait.until(EC.presence_of_all_elements_located((By.XPATH, x_arg)))
for target in targets: # Loop over and click each one
    target.click()

См .: документы на presence_of_all_elements_located

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...