2017-02-13 13 views
0

Попытка найти xpath для элемента для html-кода, упомянутого ниже.Идентификатор Xpath для элемента span с тегом «i» внутри него

Xpath работает с

//span[@title='Open'] 

Но не с

//span[text()='Open'] 

Пытаясь выяснить, с пролетом XPath и текста. Как это можно сделать

<span class="m-t-5"> 
 
<span class="label statusopen" title="Open" onclick="javascript:toggleHistoryTab(this,'tw_831158485664530432','2302','SOLR','-1','s360-379359269');" style="cursor: pointer; text-decoration: none;"> 
 
<i class="fa fa-envelope-open-o"/> 
 
Open 
 
</span> 
 
</span>

В моем тестовом случае более уместно один, чтобы найти с текстом «Open».

+0

вы можете попробовать любой из ниже выражения XPath, '// диапазон [содержит (текс t(), 'Open')] 'или' // span [содержит (., 'Open')] 'или' // span [normalize-space (text()) = 'Open')] ' –

ответ

0

Это XPath,

//span[normalize-space()='Open'][not(.//span)] 

будет выбирать те span элементы, нормализованное строковое значение является "Open" и исключит родителю span такие элементы, как в вашем примере с class="m-t-5".

0

Если вам нужно XPath для диапазона элемента с «I» тега внутри него вы можете попробовать:

//span[i] 

Если вам нужно еще более конкретно XPath для диапазона элемента с «I» тега внутри он , содержащий текст «Открыть»:

//span[i[normalize-space(text())="Open"]] 
+0

'// span [normalize-space (text()) = "Open"] 'это работает. Удалено i –