1

svg icon is clickable.

<div class="some-class">
    <svg aria-label="Search" class="some-icon" width="24" height="24" fill="#000" viewBox="0 0 24 24">
        <path d="M9.5,...,5 9.5,5Z">
        </path>
    </svg>
</div>

Sample code:

from selenium import webdriver

driver = webdriver.Chrome(CHROME_DRIVER_LOCATION)
driver.find_element_by_xpath('//*[@id="SearchForm"]/div[1]/span/div[1]/div[2]/svg/path').click()

Error:

no such element: Unable to locate element: {"method":"xpath","selector":"//*[@id="SearchForm"]/div[1]/span/div[1]/div[2]/svg/path"}

3 Answers 3

8

To click() on the svg icon you can use the following solution:

driver.find_element_by_xpath('//div[@class="some-class"]/*[name()="svg"][@aria-label="Search"]').click()

You can find a couple of relevant discussions in:

Sign up to request clarification or add additional context in comments.

Comments

4

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 for svg tags. for example : "/*[name()='svg']/*[name()='path'] "

For your reference , please find below discussion How to click on SVG elements using XPath and Selenium WebDriver through Java

Comments

0

For my case the following worked:

driver.find_element_by_xpath('//div[@class="some-class"]/*[name()="svg"][@aria-label="Search"]').click()

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.