(Python, Selenium) Можно ли получить текстовый список, только если атрибут соответствует критериям? - PullRequest
0 голосов
/ 17 октября 2018

Не уверен, что я высказал свою точку зрения в названии.

Давайте сначала разберемся с кодом соучастия.

<tbody>
  <tr>
    <td>
      <p>
        <label>
          Want to
          Get these texts
          only if img exist
        </label>
        <img src="Some td tags don't contain img" alt="alt"></img>
      </p>
    </td>
  </tr>

  <tr>
    <td>
      <p>
        <label>
          Want to
          Get these texts
          only if img exist
        </label>
      </p>
    </td>
  </tr>
...
...
...
</tbody>

Как там говорится, существует множество (около 1000) наборовтеги.И внутри них иногда существуют теги с определенным значением alt (которые все одинаковые), а иногда нет (как и во второй части).

Итак, я пытаюсь получить текст меткитолько если у него есть метка в качестве родного брата.Пока ничего хорошего.

Любая помощь будет оценена по достоинству!

(PS Я только что попал в мир питонов, поэтому немного больше описания будет высоко ценится. Заранее спасибо!)

Ответы [ 2 ]

0 голосов
/ 17 октября 2018

Вы можете попробовать с Xpath.

Это вернет только метку с изображением.Здесь мы находим метку, которая предшествует sibiling к изображению.

labels = driver.find_elements_by_xpath("//tbody//../img/preceding-sibling::label")
0 голосов
/ 17 октября 2018

Вы можете использовать ниже, чтобы получить список необходимых текстовых значений

labels = [label.text for label in driver.find_elements_by_xpath('//label[following-sibling::img[@alt="alt"]]')]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...