ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

selenium处理iframe下 #document 标签

2021-06-11 23:05:55  阅读:268  来源: 互联网

标签:selenium frame driver switch html iframe document 页面


 

使用selenium处理html的时候,遇到通过“iframe”标签实现的网页嵌套了,这个没有问题。但是,仔细再看,就发现,“iframe”标签下还有个#document==0,有点不讲武德。如图:

 

 

 

各种查资料,没有找到有价值的信息。

 

解决方案1:

  最后我就直接在html中把 “#document” 这行给删了,然后就正常了。

解决方案2:

  遇到了这篇文章: https://www.pythonf.cn/read/159594, 感谢大佬指点。

  

  操作流程是:

    进入frame框架内,获取frame框架页面源码,(解析frame源代码),退出frame框架

  具体代码:

from selenium import webdriver
driver = webdriver.Chrome()
url = XXXXXXXXXXX  #自己把地址补充
driver.get(url)
#############流程1
# 通过switch_to.frame进入frame框架页面,有下面四种情况
driver.switch_to.frame(driver.find_elements_by_tag_name("iframe")[0])  # 1.用WebElement对象来定位,发现所有iframe,并把第一个赋值

# driver.switch_to.frame("frame1")  # 2.用id来定位
# driver.switch_to.frame("myframe")  # 3.用name来定位
# driver.switch_to.frame(0)  # 4.用frame的index来定位,第一个是0

##############流程2
frame_html = driver.page_source   # 响应为 str 格式
# 切换为frame框架页面后,可以通过BeatifulSoup等工具解析frame_html网页代码

##############流程4
# 从frame中切回主文档(switch_to.default_content())
driver.switch_to.default_content()

html = driver.page_source
# 这里的html变回主页面的了

 

这个套操作下来,嵌套的html内容就拿到了,因为  响应 frame_html 为 str 格式,

但是,我最初的目的是:想检测这个嵌套的html是多长时间加载完的,最终还是没有找到方法。

 

标签:selenium,frame,driver,switch,html,iframe,document,页面
来源: https://www.cnblogs.com/yuanyongqiang/p/14876726.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有