2016-11-14 4 views
0

Проблема: я следующий HTML-структуру (ScreenShot ссылки), и я хочу найти красного цвета элемента, я использовал следующие XPath,Не удалось найти HighChart элемент по XPATH

XPath = //div[@id="SpendByVendorPieChart"]/div[@id="highcharts-10"]/svg/g[@class="highcharts-series highcharts-series-0 highcharts-tracker"]/path[@fill="#01BBAA"] 

HTML structure ScreenShot

XPath правильный, но он не может найти элемент, он находит до узла 2, из svg-узла он не находит, но когда я использую CSS, он находит этот элемент. Это проблема с XPath, которые не находят сложного элемента, такого как графический элемент, такой как PieChart, Bars.

Пожалуйста, помогите мне в этом случае, я хочу использовать XPath только потому, что он дает много гибкости для написания пользовательских выражений.

+0

Вы пропустили '//' перед меткой g, вместо этого у вас есть один '/'. Тег g, на который вы ссылаетесь, находится на двух уровнях от тега svg, а не сразу же ... – Grasshopper

ответ

0

Вместо использования тегов svg, g и path непосредственно, изменить его как [name()='svg'], [name()='g'] и [name()='path']. Можете ли вы попробовать следующее xpath,

//div[@id="SpendByVendorPieChart"]/div[@id="highcharts-10"]/descenant::*[name()='g'][@class="highcharts-series highcharts-series-0 highcharts-tracker"]/*[name()='path'][@fill="#01BBAA"] 
+0

Должно быть ('' 's missing):' ..../descenant :: * [... ]/* [...] ' – har07

+0

@ har07 Спасибо! обновляет ответ! –

+0

Спасибо @SudharsanSelvaraj в соответствии с вашим ответом, проблема решена после использования «descenant» в XPath. – Rakesh

Смежные вопросы