Selenium - нажмите раскрывающийся список SVG, чтобы открыть расширенный раздел информации - PullRequest
0 голосов
/ 03 апреля 2020

Попытка моей первой попытки веб-скрепинга. Я пытаюсь получить некоторую информацию, которая доступна, когда вы нажимаете около 20 различных стрелок раскрывающегося списка. Я не могу понять, как нажать на все 20 стрелок, хотя. Код HTML выглядит следующим образом для каждого раскрывающегося раздела ...

<button class="more" aria-label="Show more track info">
  <svg class="svg-icon icon-more">
    <use class="icon-use" xlink:href="https://mywebsiteblahblah.com#icon-down-angle">
      #shadow-root (closed)
        <svg id="icon-down-angle" viewBox="0 0 371 224">
          <path d="M184.857471,147.431517 L331.47257,0.816417666 L369.656336,39.0001839 L223.041237,185.615283 L223.117274,185.69132 L184.933508,223.875086 L184.857471,223.799049 L184.781434,223.875086 L146.597668,185.69132 L146.673705,185.615283 L0.0586051661,39.0001839 L38.2423714,0.816417666 L184.857471,147.431517 Z" transform="translate(.537 -.145)"></path>
        </svg>
    </use>
  </svg>
</button>

Я могу нажать на самую первую стрелку раскрывающегося списка, используя ...

driver.find_element_by_xpath("//button[contains(@class,\"more\") and contains(@aria-label,\"Show more track info\")]"
).click()

, но если я использую find_elements_by_xpath Я получаю ошибку AttributeError: 'list' object has no attribute 'click'

1 Ответ

0 голосов
/ 03 апреля 2020

find_elements* возвращает значение списка.

Вы должны получить к нему доступ через такой индекс:

elements = driver.find_elements_by_xpath("xpath")

#first element
elements[0].click()

Или:

driver.find_elements_by_xpath("xpath")[0].click()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...