Python Selenium как настроить таргетинг на тег h3 в определенном div?

#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 соответствующий узел.