You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Python Selenium中如何定位指定svg元素并后续点击?

Selenium Python 定位该SVG元素的方法

推荐定位逻辑

优先使用aria-label属性定位,该属性语义固定不会随前端版本迭代变更,不要使用示例中的_8-yf5类名,这类哈希类名是前端打包自动生成的,极易失效。

具体实现方案

方法1:XPath定位(最通用,可灵活加过滤条件)

首先导入By模块:

from selenium.webdriver.common.by import By

定位并点击元素:

# 基础定位
add_media_btn = driver.find_element(By.XPATH, '//svg[@aria-label="Add Photo or Video"]')
# 执行点击
add_media_btn.click()

如果需要更高精准度,可叠加其他固定属性过滤:

add_media_btn = driver.find_element(By.XPATH, '//svg[@aria-label="Add Photo or Video" and @role="img" and @height="24"]')

方法2:CSS选择器定位

add_media_btn = driver.find_element(By.CSS_SELECTOR, 'svg[aria-label="Add Photo or Video"]')
add_media_btn.click()

优化建议(避免元素未加载导致报错)

建议搭配显式等待使用,等元素加载完成可交互后再操作:

from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

# 最长等待10秒
wait = WebDriverWait(driver, 10)
add_media_btn = wait.until(EC.element_to_be_clickable((By.XPATH, '//svg[@aria-label="Add Photo or Video"]')))
add_media_btn.click()

内容的提问来源于stack exchange,提问作者nefariousbehaviour

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 22:39:03