Selenium WebDriver Message: no such element: Unable to locate element
Моя программа заходит в инстаграм по заданному хештегу и открывает первый пост, чтобы потом регулярными выражениями получить описание или же поставить лайк селениумом.
Код просто не обнаруживает элемент, какой-бы метод я не использовал(css_selector, find_element_by_class, find_element_by_xpath).
import re
import random
import time
import requests
import lxml
from selenium import webdriver
getHashtag = 'москва'
url = 'https://www.instagram.com/explore/tags/' + getHashtag
print(url)
driver = webdriver.Chrome()
driver.get(url)
element = driver.find_element_by_xpath('/html/body/div[1]/section/main/article/div[1]/div/div/div[1]/div[1]/a/div/div[2]')
element.click()
Получаю ошибку:
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"xpath","selector":"/html/body/div[1]/section/main/article/div[1]/div/div/div[1]/div[1]/a/div/div[2]"}
Прочитал, что страница может не до конца прогружаться, поэтому добавил
driver.implicitly_wait(10)
Теперь открывается страница и код дальше не идёт, получаю следующие предупреждения:
[12:38:45.454] USB: usb_device_handle_win.cc:1048 Failed to read descriptor from node connection: ╧Ёшёюхфшэхээюх ъ ёшёЄхьх єёЄЁющёЄтю эх ЁрсюЄрхЄ. (0x1F)
Заранее спасибо!
Ответы (1 шт):
Нужно добавить user агента (т.к. сервак видит, что это программа). Ещё в selenium есть метод ждать загрузки элемента (выбрать что есть на странице гарантировано).
Увеличить время ожидания, для проверки.
Но мне кажется что из-за агента.