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

Python-Selenium-Xpath获取Web表格中Span标签文本问题求助

解决Selenium提取span标签中日期的问题

目标HTML结构

<td style="padding:2px 2px 2px 5px;width:25%;white-space:nowrap;text-align:left;">
<span tabindex="0">11/29/2023 04:01:10</span>

问题分析

你之前的代码里,CSS选择器td.padding是错误的——padding是td的style属性值,不是class属性,所以无法定位到目标元素。另外,time.sleep稳定性差,建议用显式等待替代。

修正后的代码

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

DRIVER_PATH = 'C:\\Program Files (x86)\\Selenium Client\\Selenium Drivers\\chromedriver.exe'
service = Service(executable_path=DRIVER_PATH)
options = webdriver.ChromeOptions()
driver = webdriver.Chrome(service=service, options=options)
URL = 'https://www.test.com'
driver.get(URL)

# 用显式等待确保元素加载完成,替代time.sleep
wait = WebDriverWait(driver, 20)
# 方式1:通过td的style特征定位子span
date_span = wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, "td[style*='padding:2px 2px 2px 5px'] > span")))
# 方式2:直接通过span的tabindex属性定位(如果该属性唯一)
# date_span = wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, "span[tabindex='0']")))

# 获取完整的日期时间文本
full_datetime = date_span.text
print("完整日期时间:", full_datetime)

# 若只需要日期部分(分割空格取前半段)
date_only = full_datetime.split(' ')[0]
print("仅日期:", date_only)

driver.quit()

关键说明

  • 定位修正:去掉错误的td.padding选择器,改用能匹配目标元素的CSS规则;如果页面中有多个相同tabindex的span,优先用td的style特征缩小范围。
  • 显式等待:WebDriverWait会等待元素可见后再执行操作,比固定时长的time.sleep更可靠。
  • 日期提取:如果只需要日期部分,用split(' ')[0]分割字符串即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 06:43:24