【问题标题】:Clicking on svg using selenium python使用 selenium python 单击 svg
【发布时间】:2019-11-26 06:13:51
【问题描述】:

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"}

【问题讨论】:

    标签: python selenium svg xpath webdriver


    【解决方案1】:

    到 svg 图标上的click() 可以使用以下解决方案:

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

    您可以在以下位置找到一些相关讨论:

    【讨论】:

      【解决方案2】:

      “svg”元素不是来自 XHTML 命名空间,而是属于 SVG 命名空间。因此,在为 svg 标签构建 xpath 时,您必须指定 name()="svg"。 例如 : "/*[name()='svg']/*[name()='path']"

      供您参考,请在下面找到讨论 How to click on SVG elements using XPath and Selenium WebDriver through Java

      【讨论】:

        【解决方案3】:

        对于我的情况,以下工作:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2017-10-11
          • 2013-01-13
          • 2021-01-31
          • 2020-08-06
          • 2017-04-22
          • 1970-01-01
          • 2022-09-27
          相关资源
          最近更新 更多