Селениум питон получение элемента
использую селениум с питоном. при поиске элементов по классу 'line__champ' у меня в список добавляются так же скрытые элементы hidden, как мне искать через find_elements, чтобы у меня был список только открытых элементов?
Ответы (1 шт):
вероятно вам нужен 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)]
