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

Selenium 4.27.0+中如何替换废弃的WebElement.get_attribute()方法

如何在Selenium 4.27+中获取元素文本(替代已废弃的get_attribute("textContent"))

要实现原工具函数的功能,同时规避已废弃的WebElement.get_attribute(),可以通过执行JavaScript直接读取DOM元素的textContent属性来实现。因为WebElement.get_dom_attribute()仅能获取HTML标签中显式声明的属性,而textContent是DOM元素的固有属性,不属于标签属性范畴,所以直接调用JS是最直接的替代方案。

修改后的工具函数

from selenium.webdriver.remote.webelement import WebElement

def text(e: WebElement) -> str:
    # 执行JS获取DOM元素的textContent
    text_content = e.parent.execute_script('return arguments[0].textContent;', e)
    # 保留原逻辑:优先可见文本,再取textContent,最后兜底
    processed_content = text_content.strip() if text_content else None
    return e.text or processed_content or "n/a"

代码说明

  • e.parent.execute_script():通过元素所属的驱动执行JavaScript,arguments[0]对应传入的目标元素e,直接返回其textContent值
  • 保留原逻辑优先级:优先使用e.text(仅获取元素的可见文本),当e.text为空时,使用textContent(包含元素的所有文本,包括隐藏内容)
  • 对textContent做strip()处理,去除首尾空白字符(若不需要可自行移除)

这种方式完全符合Selenium 4.27+的版本要求,同时和原工具函数的功能完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 22:12:35