9

Below is the html for SVG, pls help me with creating XPATH for same

<svg data-reactid=".1q.0.3.1.0" version="1.1" class="svg-connector">
   <circle data-reactid=".1q.0.3.1.0.0" r="7" cy="11" cx="11" class="inner-circle"/>
</svg>
undetected Selenium
  • 183,867
  • 41
  • 278
  • 352
Altamash Shaikh
  • 99
  • 1
  • 1
  • 7

4 Answers4

18

For svg nodes you need to use below syntax:

//*[name()="svg" and @class="svg-connector"]

This is because common HTML nodes and svg nodes belongs to different namespaces

Andersson
  • 51,635
  • 17
  • 77
  • 129
10

The <svg> elements are not from the XHTML namespace but belongs to SVG namespace. Hence you have to specify name()="svg" while constructing the xpath as follows :

//*[name()="svg" and @class="svg-connector"]//*[name()="circle" and @class="inner-circle"]

You can find a detailed discussion in Selenium WebDriver [Java]: How to Click on elements within an SVG using XPath

undetected Selenium
  • 183,867
  • 41
  • 278
  • 352
0

Try the following xpath :

//svg[@class='svg-connector']
undetected Selenium
  • 183,867
  • 41
  • 278
  • 352
Tapas Mahato
  • 23
  • 10
0

Other suggestions didn't work for me. Here is what did:

//*[name() = 'svg'][contains(@class, 'input-class-name-here')]

Alan Jereb
  • 154
  • 2
  • 12