#python #selenium
Вопрос:
У меня есть несколько тегов h3 на странице, ни у одного из них нет целевого класса или идентификатора, но конкретный, который мне нужен, находится в другом более крупном div. Код приведен ниже:
<div class="profile-info"> <div class="photo-wrapper"> </div> <h3> Text I need </h3> </div>
Как мне настроить таргетинг и сохранить текст в этом теге h3?
Комментарии:
1. через селектор css это будет похоже на —> перейти к родителю, а затем к следующему брату. Так что это даст вам текст
driver.find_element_by_css_selector('.photo-wrapper h3').text
Ответ №1:
Если класс photo-wrapper
уникален.
Вы можете использовать ниже xpath :
//div[@class='photo-wrapper']//following-sibling::h3
если существует более одного тега h3, пожалуйста, используйте индексацию xpath:
(//div[@class='photo-wrapper']//following-sibling::h3)[1]
представлять первого ребенка h3
.. [2]
на секунду h3
и так далее..
или с помощью дочернего :
//div[@class='profile-info']//child::h3
чтобы найти первого ребенка в разделе div, у которого есть profile-info
класс.
(//div[@class='profile-info']//child::h3)[1]
для представления первого элемента, а также с индексированием xpath.
(//div[@class='profile-info']//child::h3)[2]
PS : Пожалуйста, проверьте в dev tools
(Google chrome), есть ли у нас уникальная запись HTML DOM
или нет.
Шаги для проверки:
Press F12 in Chrome
-> перейдите в > element
раздел -> сделайте > CTRL F
-> затем вставьте > xpath
и посмотрите, element
выделяется ли ваш желаемый 1/1
соответствующий узел.