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

如何使用Python的Selenium修改网页中嵌入的XML数据

用Selenium + Python修改网页嵌入XML的实现方法

首先确认你的XML是存放在网页的DOM元素中(比如<code>、<pre>、<textarea>或者其他自定义容器标签),可以按以下步骤实现修改:

  • 第一步:用Selenium定位到存放XML内容的目标元素
  • 第二步:取出元素内的XML原始字符串,用Python XML解析库修改对应节点值
  • 第三步:将修改后的XML字符串写回原页面元素,按需触发内容变更事件

完整示例代码

from selenium import webdriver
from selenium.webdriver.common.by import By
import xml.etree.ElementTree as ET

# 初始化浏览器驱动
driver = webdriver.Chrome()
driver.get("替换为你的目标网页地址")

# 1. 定位存放XML的容器元素,可根据实际情况替换定位方式(XPATH、CLASS_NAME等)
xml_container = driver.find_element(By.ID, "替换为实际元素的ID")
# 若容器是textarea等表单元素,改为 get_attribute("value") 取内容
original_xml = xml_container.get_attribute("innerHTML")

# 2. 解析XML并修改目标节点值
root = ET.fromstring(original_xml)
# 定位值为Existing Value的节点,可根据实际XML结构调整查找路径
target_node = root.find(".//*[text()='Existing Value']")
target_node.text = "New Value"
# 序列化修改后的XML为字符串
modified_xml = ET.tostring(root, encoding="unicode", method="xml")

# 3. 把修改后的XML写回页面元素
# 若为textarea表单元素,改为 arguments[0].value = arguments[1]
driver.execute_script("arguments[0].innerHTML = arguments[1];", xml_container, modified_xml)
# 若页面需要感知内容变更,触发input事件
driver.execute_script("arguments[0].dispatchEvent(new Event('input'));", xml_container)

# 后续可执行提交等其他操作
# driver.find_element(By.ID, "submit_btn").click()

注意事项

  • 如果XML带有命名空间,解析和查找节点时需要传入命名空间映射参数,避免定位节点失败
  • 若原始XML有格式缩进要求,序列化时可以引入xml.dom.minidom做格式化处理,避免修改后XML格式混乱
  • 修改完成后可以重新读取元素内容验证修改是否生效

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 00:45:03