Python Selenium. Получение дочерних тэгов
Прошу помощи. Не могу понять, можем ли мы провалиться с помощью find_elemets_by_ глубже в код? Например, есть следующий код:
<div class="element">
<li class="first_name"> Иван </li>
<li class="second_name"> Иванов </li>
</div>
<div class="element">
<li class="first_name"> Петр </li>
<li class="second_name"> Петров </li>
</div>
<div class="element">
<li class="first_name"> Александр </li>
<li class="second_name"> Александров </li>
</div>
Если мы попытаемся взять элементЫ по классу find_elemets_by_class_name("element"), то получим три веб.элемента. Чтобы я хотел, но не знаю, как получить.
Я хочу пробежаться по полученному списку веб.элементов обратиться к каждому и сказать, дай мне то, что у тебя там будет дальше в классе first_name, а может дай мне то, что у тебя там дальше в a/href/div/li и пр. и т.д. Может быть можно взять второй find_element?
ниже псевдокод
list_elem = driver.find_elemets_by_class_name("element")
for each_elem in list_elem:
each_elem.ДАЙ_МНЕ_FIRST_NAME
each_elem.ДАЙ_МНЕ_LAST_NAME
Есть ли возможность обратиться к веб.элементу и обратиться уже к дочерним его тэгам? Дабы потом, создать некий словарь. Спасибо!
Ответы (1 шт):
Вопрос закрываю.
Да, моя догадка была верна, мы можем обратиться к "найденному" элементу, и искать уже "внутри" него. Т.е. для моего условного примера, каждый элемент each_elem будет иметь внутри себя структуру:
<li class="first_name"> ____</li>
<li class="second_name"> ____ </li>
условно говоря, из всего "большого сайта", мы теперь обращаемся только к "дочерним тэгам", которые есть у each_elem
И для примера, мы сможем обратиться вот так
each_elem.find_elements_by_class_name("first_name").text
each_elem.find_elements_by_class_name("second_name").text
И получим значения для каждого each_elem
Надеюсь, кому-то это может пригодиться)