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

Python3 Selenium如何定位指定元素并获取其动态更新的文本数值

定位方案与示例代码

核心定位逻辑

目标元素携带唯一业务属性data-target="points.balance",优先使用该属性做定位依据,稳定性远高于样式类名定位,不会因为前端样式调整导致定位失效。

Python 版Selenium实现

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

# 初始化Chrome浏览器,也可替换为Firefox、Edge等其他浏览器驱动
driver = webdriver.Chrome()
driver.get("替换为你的目标页面实际URL")

def get_latest_points():
    # 每次取值前重新查找元素,搭配10秒显式等待,确保元素已加载完成再读取内容
    element = WebDriverWait(driver, 10).until(
        EC.presence_of_element_located((By.CSS_SELECTOR, 'div[data-target="points.balance"]'))
    )
    # 提取文本并去除首尾空白后转为整数类型
    points = int(element.text.strip())
    return points

# 调用方法打印最新积分值
print(get_latest_points())

# 若需要实时轮询获取更新后的值,可使用以下循环逻辑
# import time
# while True:
#     print(get_latest_points())
#     time.sleep(2) # 按需调整轮询间隔,单位为秒

注意事项

  • 不要复用第一次查找到的元素对象,每次取值都重新触发查找逻辑,避免读取到Selenium缓存的旧元素内容
  • 如果数值是异步动态更新的,可以将presence_of_element_located替换为自定义的文本变化等待条件,确保拿到更新后的值
  • 若元素被设置为隐藏状态,text属性可能返回空,可替换为element.get_attribute("textContent").strip()读取内容
  • 定位也可以使用XPath写法:By.XPATH, '//div[@data-target="points.balance"]',效果和CSS选择器一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 05:45:01