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

Selenium使用CSS选择器定位元素报错,无法校验img标签src属性值

问题根因

你触发TypeError: 'str' object is not callable报错的核心原因是By.CSS_SELECTOR的用法错误:By.CSS_SELECTOR是Selenium预定义的字符串常量,不是可调用的函数,你错误地将选择器字符串用括号包裹传入By.CSS_SELECTOR,等同于尝试调用一个字符串,触发类型错误。

正确实现代码

1. 基础实现

首先确认你已经导入了必要的依赖:

from selenium.webdriver.common.by import By

然后按正确语法定位元素、校验src属性:

# 定位到目标img元素
img_element = driver.find_element(By.CSS_SELECTOR, "#body_logo img")
# 获取img的src属性值
src_val = img_element.get_attribute("src")

# 校验是否包含指定字符串,可替换为你要检测的目标内容
target = "#local"
if target in src_val:
    print("src属性校验通过")
else:
    print(f"校验失败,当前src为:{src_val}")

2. 优化方案(避免元素未加载导致的定位失败)

可以增加显式等待,等元素加载完成后再执行操作:

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

# 最长等待10秒,直到目标img元素出现在DOM中
wait = WebDriverWait(driver, 10)
img_element = wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, "#body_logo img")))
# 后续校验逻辑同上
src_val = img_element.get_attribute("src")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 19:15:00