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

Selenium定位元素不稳定求助:无法可靠获取网页Delta值

问题:从ING银行衍生品页面提取Delta值失败

我耗费大量时间,查阅数百篇问答仍未解决问题。需要从ING银行产品网页(链接:https://wertpapiere.ing.de/Investieren/Derivat/DE000HS2JL06,2024年9月17日失效)提取Delta值(预期为-0,0193)。

尝试过以下几种Selenium定位方式,但均无法稳定或成功获取元素:

  • delta = driver.find_element(By.XPATH, '//*[text()=\'Delta\']/following-sibling::td'):有时生效,多数情况失败,推测页面中Delta出现10次导致定位混乱;
  • delta = driver.find_element(By.XPATH, '//*[text()=\'Delta\']/[5]following-sibling::td'):未解决问题;
  • delta = driver.find_element(By.XPATH, '//td[contains(text(), "Delta")]/following-sibling::td'):同样失败;
  • 全路径XPATH:delta = driver.find_element(By.XPATH, '/html/body/main/div[2]/div/div[2]/div[1]/sh-derivative-greeks/div/div[1]/div/table/tbody/tr[2]/td[2]'):无法找到元素,推测因动态ID导致。

解决方案

针对页面中多个Delta文本干扰、动态元素路径失效的问题,推荐以下稳定可行的定位方案:

  1. 基于组件标签缩小查找范围
    目标Delta值位于sh-derivative-greeks组件内的Greeks表格中,先定位该组件再查找目标元素,可避免其他无关Delta的干扰:
from selenium.webdriver.common.by import By

# 定位组件内的Delta对应单元格
delta_element = driver.find_element(By.XPATH, '//sh-derivative-greeks//table/tbody/tr[td[text()="Delta"]]/td[2]')
delta_value = delta_element.text
  1. 加入显式等待确保元素加载完成
    多数"有时生效有时失败"的问题源于元素未完全加载,必须配合显式等待:
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By

# 等待目标行出现,最长等待15秒
delta_row = WebDriverWait(driver, 15).until(
    EC.presence_of_element_located((By.XPATH, '//sh-derivative-greeks//table/tbody/tr[td[text()="Delta"]]'))
)
# 提取Delta值
delta_value = delta_row.find_element(By.XPATH, './td[2]').text
  1. 结合表格标题进一步精准定位
    如果组件内的表格有明确的"Greeks"标题,可通过标题限定查找范围:
delta_element = driver.find_element(By.XPATH, '//sh-derivative-greeks//div[text()="Greeks"]/following-sibling::div//table/tbody/tr[td[text()="Delta"]]/td[2]')

关键注意事项

  • 绝对不要使用全路径XPATH,页面结构稍有变动就会失效;
  • 利用页面的自定义组件标签(如sh-derivative-greeks)作为定位根节点,是避免无关元素干扰的核心;
  • 显式等待必须作为标准流程,不能依赖隐式等待或直接查找元素。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 17:47:16