Python Selenium提取id为quantitySpan的span标签文本问题
解决元素文本提取问题
可行方案
方法1:通过ID定位并提取原始文本内容
你的HTML结构里,<span id="quantitySpan">的文本带引号且包含img子元素,直接用.text可能无法正确获取完整内容,改用get_attribute获取原始文本后再处理:
element = driver.find_element(By.ID, "quantitySpan") # 获取元素内的所有文本内容 raw_text = element.get_attribute("textContent").strip() # 去除多余引号和空格,提取目标文本 stock_text = raw_text.replace('"', '').strip() print(stock_text) # 输出: in stock
方法2:用XPath直接定位文本节点
跳过子元素,直接定位span下的文本节点,避免img元素干扰:
# 定位span标签下的文本节点 text_node = driver.find_element(By.XPATH, '//span[@id="quantitySpan"]/text()') raw_text = text_node.get_attribute("nodeValue").strip() stock_text = raw_text.replace('"', '').strip() print(stock_text)
方法3:添加显式等待确保元素加载
如果是元素未完全加载导致获取失败,先等待元素可见:
from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC # 最长等待10秒,直到元素可见 element = WebDriverWait(driver, 10).until( EC.visibility_of_element_located((By.ID, "quantitySpan")) ) stock_text = element.get_attribute("textContent").replace('"', '').strip() print(stock_text)
内容的提问来源于stack exchange,提问作者Dvir Yadae
相关产品推荐
相关产品推荐

