svg图标是可单击的。
<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>
示例代码:
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()
错误:
没有这样的元素:无法找到元素:{“ method”:“ xpath”,“ selector”:“ // * [@ id =” SearchForm“] / div [1] / span / div [1] / div [2] / svg / path“}
答案 0 :(得分:1)
要对svg图标上的click()
使用以下解决方案:
driver.find_element_by_xpath('//div[@class="some-class"]/*[name()="svg"][@aria-label="Search"]').click()
您可以在以下位置找到一些相关的讨论
答案 1 :(得分:0)
“ svg”元素不是来自XHTML命名空间,而是属于SVG命名空间。因此,在构造svg标签的xpath时必须指定name()=“ svg”。 例如 : “ / * [name()='svg'] / * [name()='path']”
供参考,请在下面的讨论中找到 How to click on SVG elements using XPath and Selenium WebDriver through Java