8

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
  • 151,581
  • 34
  • 225
  • 281

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
  • 49,746
  • 15
  • 64
  • 117
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
  • 151,581
  • 34
  • 225
  • 281
0

Try the following xpath :

//svg[@class='svg-connector']
undetected Selenium
  • 151,581
  • 34
  • 225
  • 281
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
  • 94
  • 1
  • 8