#python #web-scraping #data-mining
#python #очистка веб-страниц #интеллектуальный анализ данных
Вопрос:
Привет, эксперты!Я новичок в программировании, я столкнулся с проблемой поиска определенного элемента. Вот мой код.
from selenium import webdriver
from bs4 import BeautifulSoup as bs
import time
driver = webdriver.Chrome()
driver.get('https://www.ackerwines.com/auctions/?auctionId=1328')
time.sleep(3)
driver.find_element_by_xpath("//label[@for='checkbox']").click()
time.sleep(2)
driver.find_element_by_xpath("(//div[@id='sm-agree-button-wrap'])[3]").click()
time.sleep(5)
try:
driver.find_element_by_xpath("(//div[@class='elementor-shortcode'])[6]").click()
except:
driver.find_element_by_xpath("(//a[@class='elementor-icon'])[1]").click()
time.sleep(1)
driver.find_element_by_xpath("//input[@id='xoo-el-username']").click()
driver.find_element_by_xpath("//input[@id='xoo-el-username']").send_keys('malikibrahim6786@gmail.com')
driver.find_element_by_xpath("//input[@id='xoo-el-password']").click()
driver.find_element_by_xpath("//input[@id='xoo-el-password']").send_keys('Malik786')
driver.find_element_by_xpath("//input[@id='xoo-el-rememberme']").click()
driver.find_element_by_xpath("(//button[@type='submit'])[2]").click()
time.sleep(15)
prod = driver.find_element_by_xpath("//div[@class='auctionLotsList']")
print(prod)
Ошибка, которую я получаю, это
NoSuchElementException: Message: no such element: Unable to locate element: {"method":"xpath","selector":"//div[@class='auctionLotsList']"}
(Session info: chrome=87.0.4280.88)
Комментарии:
1. Очевидным объяснением является то, что элемента там нет. Что заставляет вас думать, что оно должно быть там?
Ответ №1:
Исключение NoSuchElementException возникает, когда selenium не может найти элемент. Чтобы решить эту проблему, дважды проверьте правильность элемента xpath. Еще одна проблема, вызывающая это, заключается в том, что веб-сайт все еще загружается. Вы можете добавить задержку в 1 или 2 секунды с помощью time.sleep() . Наконец, вы можете перехватить исключение с помощью try: и except:, поместив под ним весь find_by_xpath .