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

使用Python Selenium修改网页<p>标签文本的方法求助

解决方法

要修改<p>这类静态文本标签的内容,Selenium原生方法无法直接实现,需要通过执行JavaScript代码来操作DOM元素的文本属性。

原因分析

  • send_keys() 仅适用于可编辑的表单元素(如<input>、<textarea>),普通<p>标签不支持该方法。
  • innerHtml 是DOM元素的属性,并非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

# 等待目标元素加载完成(用CSS选择器定位多类名元素更准确)
target_p = WebDriverWait(driver, 60).until(
    EC.presence_of_element_located((By.CSS_SELECTOR, 'p.MuiTypography-root.jss43.MuiTypography-body1'))
)

# 执行JS修改文本内容(两种方式二选一即可)
# 方式1:仅修改纯文本,保留原标签结构
driver.execute_script("arguments[0].textContent = '25 Years';", target_p)

# 方式2:支持替换带HTML标签的内容(此处仅替换文本)
# driver.execute_script("arguments[0].innerHTML = '25 Years';", target_p)

补充说明

  • 若MuiTypography-root类名在页面中唯一,也可简化定位为(By.CLASS_NAME, 'MuiTypography-root'),但多类名组合的CSS选择器能避免定位到重复元素。
  • arguments[0]对应传入的target_p元素,通过JS直接操作DOM属性可直接修改标签内的文本。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 20:10:25