У меня есть следующая структура dom:
<h3 class="popover-title">
<div class="popup-title">
<div class="title-txt">Associated Elements  (5)</div>
</div>
</h3>
Я пытаюсь написать xpath, который идентифицирует заголовок «Связанные элементы» под тегом h3.
Когда мой xpath равен
//div[contains(@class, popover)]//h3[contains(.,'Associated Elements')]
элемент идентифицирован.
Однако, когда мой xpath равен
//div[contains(@class, popover)]//h3[contains(text(),'Associated Elements')]
, элемент не идентифицирован.Насколько я понимаю, точка (.) Является заменой text (), но почему она не идентифицирует элемент, когда я использую функцию text ().
Однако для другой структуры dom:
<h3 class="popover-title">
<a class="btn-popover" href="#">x</a>
"Associated Elements"
</h3>
xpath:
//div[contains(@class, popover)]//h3[contains(text(),'Associated Elements')]
&
//div[contains(@class, popover)]//h3[contains(.,'Associated Elements')]
работает нормально.
Может кто-нибудь объяснить, пожалуйста, поведение точки (.) Воба эти сценария?
Есть ли лучший способ написать xpath, который подходит для обоих примеров?Пожалуйста, предложите.