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

Python Selenium获取动态span数值时语法错误求助

解决获取动态span数值时的SyntaxError问题

首先,你的代码触发SyntaxError是因为字符串嵌套冲突:CSS选择器里用了双引号,而包裹整个选择器的也是双引号,Python无法正确解析。

修正语法错误的两种方式:

  • 方式一:将外层字符串改为单引号,内层保留双引号:
valorliquido = navegador.find_element_by_css_selector('span[class="woocommerce-summary__item-value"]')
  • 方式二:转义内层的双引号(用\"):
valorliquido = navegador.find_element_by_css_selector("span[class=\"woocommerce-summary__item-value\"]")

针对动态元素的额外优化

因为目标span的数值是持续变化的动态元素,直接获取可能遇到元素未加载或数值未更新的问题,建议使用显式等待确保元素可交互后再获取:

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

# 等待元素可见(最长等待10秒)
valorliquido_element = WebDriverWait(navegador, 10).until(
    EC.visibility_of_element_located((By.CSS_SELECTOR, 'span[class="woocommerce-summary__item-value"]'))
)
# 获取数值并转为整数/浮点数
valorliquido = int(valorliquido_element.text)  # 或 float() 按需转换

补充说明

如果页面中有多个class为woocommerce-summary__item-value的span,需要更精确的选择器(比如结合父元素的class或其他属性)来定位目标元素,避免获取到错误的数值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 14:47:08