Селен .click () не работает. При получении ошибки «список» объект не имеет атрибута «клик» - PullRequest
0 голосов
/ 22 октября 2019

.click () не работает должным образом и возвращает ошибку: объект «список» не имеет атрибута «клик». Любая помощь будет оценена.

from selenium.webdriver.common.keys import Keys
from time import sleep, strftime
from random import randint
import pandas as pd

chromedriver_path = 'C:/Users/Enrico/Downloads/chromedriver_win32/chromedriver.exe'
webdriver = webdriver.Chrome(executable_path=chromedriver_path)
sleep(2)
webdriver.get('https://www.instagram.com/accounts/login/?source=auth_switcher')
sleep(3)

username = webdriver.find_element_by_name('username')
username.send_keys('username')
password = webdriver.find_element_by_name('password')
password.send_keys('password')
password.send_keys(Keys.ENTER)
sleep(3)

notnow = webdriver.find_elements_by_css_selector('body > div:nth-child(13) > div > div > div > div.mt3GC > button.aOOlW.HoLwm')
notnow.click()

Ответы [ 2 ]

0 голосов
/ 22 октября 2019

.find_elements* возвращает список элементов, поэтому перед вызовом метода .click() необходимо поставить индекс.

notnow = webdriver.find_elements_by_css_selector('body > div:nth-child(13) > div > div > div > div.mt3GC > button.aOOlW.HoLwm')

print(len(notnow))
if len(notnow) > 0:
    notnow[0].click()
else:
    print('element not found')

Приведенное выше предположение о том, что вы хотите щелкнуть первый элемент.

0 голосов
/ 22 октября 2019

Это неверно. Вы не должны использовать

notnow = webdriver.find_elements_by_css_selector('body > div:nth-child(13) > div > div > div > div.mt3GC > button.aOOlW.HoLwm')


Вместо find_elements_by_css_selector, вы должны использовать find_element_by_css_selector.

Если вы не ожидаете, что не будет возвращен список элементов, вы должны сделатьцикл и щелкните по нужному элементу вместо. Примерно так


elements = webdriver.find_elements_by_css_selector('body > div:nth-child(13) > div > div > div > div.mt3GC > button.aOOlW.HoLwm')

for element in elements:
    element.click()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...