python使用selenium无法获取frame完整内容的问题

问题描述

我们使用 selenium 去打开一个页面,由于页面中使用了 frame 元素,只能获取部分内容,不能获取 frame 中的任何内容的问题。

解决方法

这里需要切换到 frame 获取内容,然后再把默认页面的内容拼接为一个完成的网页。下面是实现的代码。

python 复制代码
from selenium import webdriver

option = FirefoxOptions()
driver = webdriver.Firefox(executable_path=DRIVER_PATH, options=option)
# 打开页面
driver.get("https://tjj.sh.gov.cn/tjnj/nj22.htm?d1=2022tjnj/BZSM.html")
# 获取主页面源代码
main_page_source = driver.page_source
# 找到 frame 元素
frame_element = driver.find_element_by_xpath('//frame[@name="main"]')  # 替换为实际的 frame ID 或其他定位方式
# 切换到 frame
driver.switch_to.frame(frame_element)
# 获取 frame 内容的源代码
frame_page_source = driver.page_source
# 切回主页面
driver.switch_to.default_content()
# 合并主页面和 frame 内容
complete_page_source = main_page_source.replace('</head>', f'<base href="{driver.current_url}"></head>') + frame_page_source
# 此时 complete_page_source 包含了整个页面的内容(包括 frame 内容)
print(complete_page_source)
# 关闭 WebDriver
driver.quit()
相关推荐
赵英英俊3 小时前
Python day15
开发语言·python
zxsd_xyz3 小时前
基于LabVIEW与Python混合编程的变声器设计与实现
开发语言·python·labview
遇见尚硅谷3 小时前
C语言:20250712笔记
c语言·开发语言·数据结构
☞下凡☜3 小时前
C语言(20250711)
linux·c语言·开发语言
二进制person4 小时前
数据结构--准备知识
java·开发语言·数据结构
半梦半醒*4 小时前
H3CNE综合实验之机器人
java·开发语言·网络
李昊哲小课5 小时前
K近邻算法的分类与回归应用场景
python·机器学习·分类·数据挖掘·回归·近邻算法·sklearn
laoliu19965 小时前
GGE Lua 详细教程
开发语言·junit·lua
勇闯逆流河5 小时前
【C++】list及其模拟实现
开发语言·c++
笑小枫6 小时前
Pytorch使用GPU训练全过程,包含安装CUDA、cuDNN、PyTorch
人工智能·pytorch·python