Селениум питон получение элемента

пример

использую селениум с питоном. при поиске элементов по классу 'line__champ' у меня в список добавляются так же скрытые элементы hidden, как мне искать через find_elements, чтобы у меня был список только открытых элементов?


Ответы (1 шт):

Автор решения: nexoma

вероятно вам нужен not contains, если используете xpath1

см. https://stackoverflow.com/questions/26640746/xpath-syntax-for-and-not-contains

update: на http://xpather.com/ получился следующий результат //div/div[@hidden] либо искомое противоположное //div/div[not(@hidden)]

то есть

driver.find_elements(By.XPATH, '//div/div[not(@hidden)]')

ну теперь это будет выглядеть так:

//div/div[@class='line_champ' and not(@hidden)]

это работает, просто вам нужно выйти на данные узлы, видите. у меня два div'а стоят. вам следует поправить первый div, что бы попасть на искомые узлы.

вот мой пример xml

<div>
  <div class="line_chanp" >1</div>
  <div class="line_chanp" >2</div>
  <div class="line_chanp" hidden>3</div>
  <div class="NO_line_chanp" hidden>4</div>
  <div class="line_chanp" >5</div>
  <div class="NOline_chanp" >6</div>
  <div class="line_chanp" hidden>7</div>
  <div class="line_chanp" >8</div>
  <div class="line_chanp" >9</div>
  <div class="line_chanp" hidden>7</div>
</div>

возможно, окажется достаточным такое

//div[@class='line_champ' and not(@hidden)]
→ Ссылка