#python #selenium-chromedriver
Вопрос:
Я новичок в использовании selenium с python для очистки веб-страниц. Веб-страница, с которой я пытаюсь удалить данные, содержит элементы href в определенном классе навигации. Мне нужно щелкнуть в примере 3, но я не могу найти имя класса или идентификатор.
<nav class"nav-main">
<ul class="nav nav-pills nav-main" id="topMain"><li class="dropdown">
::before
<li class="dropdown">
<a>EXAMPLE1<a>
</li>
<li class="dropdown">
<a>EXAMPLE2<a>
</li>
<li class="dropdown">
<a>EXAMPLE3<a>
</li>
:after
</ul>
</nav>
Спасибо!
Комментарии:
1. покажите нам код, который вы пробовали
Ответ №1:
Используя метод Selenium find_elements_by_css_selector (), вы можете выбрать все элементы с общим именем класса и щелкнуть по любому из них. Вот пара строк кода, которые должны направить вас в правильном направлении:
driver = webdriver.Chrome("LOCAL_PATH_TO_CHROMEDRIVER")
driver.get("YOUR_URL")
content = driver.page_source
third_element = driver.find_elements_by_css_selector('nav ul li.dropdown a')[2]
third_element.click()
В качестве альтернативы, это может помочь взглянуть на следующую статью (ссылка должна привести вас к разделу «Как извлекать статически загруженный контент с помощью Селена»), поскольку в ней раскрывается та же идея использования Селена для доступа к интерактивным элементам: https://www.freecodecamp.org/news/how-to-scrape-websites-with-python-2/#how-to-extract-statically-loaded-content-using-selenium