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

如何使用Selenium通过部分URL片段匹配获取对应完整URL

问题原因

你原有代码执行失败的核心问题有两个:

  • contains(text(), 'xxx') 是用来匹配元素的可见文本内容,而你要找的目标URL存储在<img>标签的src属性中,并不属于元素文本范畴
  • 你设置的匹配规则带了url(前缀,但你提供的HTML结构里的图片链接是直接写在src属性里的,不存在这个前缀,匹配规则和实际内容不匹配
修复后的代码

Selenium 3.x 旧版兼容写法

# 定位所有src属性包含指定片段的img标签
img_elements = driver.find_elements_by_xpath('//img[contains(@src, "cloudxyd.com/image/")]')
# 提取所有符合条件的完整URL
target_urls = [elem.get_attribute('src') for elem in img_elements]

Selenium 4.x 推荐写法(旧的find_elements_by_*方法已被废弃)

from selenium.webdriver.common.by import By

# 定位所有符合条件的img标签
img_elements = driver.find_elements(By.XPATH, '//img[contains(@src, "cloudxyd.com/image/")]')
# 提取所有完整URL
target_urls = [elem.get_attribute('src') for elem in img_elements]
补充说明

如果你后续遇到URL是写在元素的style属性中(比如背景图的background-image: url(xxx)格式),才需要匹配带url(的内容,对应XPath写法为:
//*[contains(@style, "url(//cloudxyd.com/image/")]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.16 08:27:02