Python и Селен: Создание сайтов

#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