Python爬虫之Selenium中frame/iframe表单嵌套页面


Posted in Python onDecember 04, 2020

在Web应用中经常会遇到frame/iframe表单嵌套页面的应用,WebDriver只能在一个页面上对元素识别与定位,对于frame/iframe表单内嵌页面上的元素无法直接定位。这时就需要通过switch_to.frame()方法将当前定位的主体切换为frame/iframe表单的内嵌页面中。

本章中用到的关键方法如下:

  • switch_to.frame():切换为frame/iframe表单的内嵌页面中
  • switch_to.parent_frame():退出内嵌页面

以ip138网站为例

Python爬虫之Selenium中frame/iframe表单嵌套页面

from selenium import webdriver

driver = webdriver.Chrome()

# 打开ip138网站
driver.get("http://www.ip138.com/")

# 定位到内嵌网页(iframe),并进入表单
xf = driver.find_element_by_xpath('/html/body/div/div[3]/iframe')
driver.switch_to.frame(xf)
#driver.switch_to.frame(name or id) #默认直接取表单的id 或name属性,如果都没有则通过上边的定位方式
print(driver.find_element_by_xpath('/html/body/p[1]').text)

# 退出内嵌网页(iframe),如果想操作外层的页面,不退出是会报错的
driver.switch_to.default_content()
print(driver.find_element_by_xpath('/html/body/div/div[3]/h3').text)

driver.quit()

Selenium文集传送门:

标题 简介
Python爬虫 - Selenium(1)安装和简单使用 详细介绍Selenium的依赖环境在Windows和Centos7上的安装及简单使用
Python爬虫 - Selenium(2)元素定位和WebDriver常用方法 详细介绍定位元素的8种方式并配合点击和输入、提交、获取断言信息等方法的使用
Python爬虫 - Selenium(3)控制浏览器的常用方法 详细介绍自定义浏览器窗口大小或全屏、控制浏览器后退、前进、刷新浏览器等方法的使用
Python爬虫 - Selenium(4)配置启动项参数 详细介绍Selenium启动项参数的配置,其中包括无界面模式、浏览器窗口大小设置、浏览器User-Agent (请求头)等等
Python爬虫 - Selenium(5)鼠标事件 详细介绍鼠标右击、双击、拖动、鼠标悬停等方法的使用
Python爬虫 - Selenium(6)键盘事件 详细介绍键盘的操作,几乎包含所有常用按键以及组合键
Python爬虫 - Selenium(7)多窗口切换 详细介绍Selenium是如何实现在不同的窗口之间自由切换
Python爬虫 - Selenium(8)frame/iframe表单嵌套页面 详细介绍如何从当前定位的主体切换为frame/iframe表单的内嵌页面中
Python爬虫 - Selenium(9)警告框(弹窗)处理 详细介绍如何定位并处理多类警告弹窗
Python爬虫 - Selenium(10)下拉框处理 详细介绍如何灵活的定位并处理下拉框
Python爬虫 - Selenium(11)文件上传 详细介绍如何优雅的通过send_keys()指定文件进行上传
Python爬虫 - Selenium(12)获取登录Cookies,并添加Cookies自动登录 详细介绍如何获取Cookies和使用Cookies进行自动登录
Python爬虫 - Selenium(13)设置元素等待 详细介绍如何优雅的设置元素等待时间,防止程序运行过快而导致元素定位失败
Python爬虫 - Selenium(14)窗口截图 详细介绍如何使用窗口截图
Python爬虫 - Selenium(15)关闭浏览器 详细介绍两种关闭窗口的区别

到此这篇关于Python爬虫之Selenium中frame/iframe表单嵌套页面的文章就介绍到这了,更多相关Selenium frame/iframe表单嵌套内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python的一些用法分享
Oct 07 Python
Python中使用 Selenium 实现网页截图实例
Jul 18 Python
python如何通过实例方法名字调用方法
Mar 21 Python
python中字符串变二维数组的实例讲解
Apr 03 Python
详解用TensorFlow实现逻辑回归算法
May 02 Python
python re模块的高级用法详解
Jun 06 Python
python绘制双Y轴折线图以及单Y轴双变量柱状图的实例
Jul 08 Python
Python解释器以及PyCharm的安装教程图文详解
Feb 26 Python
python 实现读取csv数据,分类求和 再写进 csv
May 18 Python
Python中无限循环需要什么条件
May 27 Python
Keras 使用 Lambda层详解
Jun 10 Python
Python3爬虫mitmproxy的安装步骤
Jul 29 Python
Python爬虫之Selenium多窗口切换的实现
Dec 04 #Python
Python爬虫之Selenium实现键盘事件
Dec 04 #Python
python 爬虫请求模块requests详解
Dec 04 #Python
Python爬虫之Selenium鼠标事件的实现
Dec 04 #Python
Selenium 配置启动项参数的方法
Dec 04 #Python
Python爬虫逆向分析某云音乐加密参数的实例分析
Dec 04 #Python
浅谈Selenium 控制浏览器的常用方法
Dec 04 #Python
You might like
基于PHP常用函数的用法详解
2013/05/10 PHP
yii2整合百度编辑器umeditor及umeditor图片上传问题的解决办法
2016/04/20 PHP
JavaScript 程序编码规范
2010/11/23 Javascript
jquery实现盒子下拉效果示例代码
2013/09/12 Javascript
js判断上传文件的类型和大小示例代码
2013/10/18 Javascript
js实现浏览器的各种菜单命令比如打印、查看源文件等等
2013/10/24 Javascript
js对图片base64编码字符串进行解码并输出图像示例
2014/03/17 Javascript
nodejs批量修改文件编码格式
2015/01/22 NodeJs
javascript实现平滑无缝滚动
2020/08/09 Javascript
Jquery组件easyUi实现选项卡切换示例
2016/08/23 Javascript
微信小程序签到功能
2018/10/31 Javascript
JavaScript设计模式之责任链模式实例分析
2019/01/16 Javascript
vue实现跨域的方法分析
2019/05/21 Javascript
微信小程序实现打开并下载服务器上面的pdf文件到手机
2019/09/20 Javascript
解决三元运算符 报错“SyntaxError: can''t assign to conditional expression”
2020/02/12 Javascript
js代码编写无缝轮播图
2020/09/13 Javascript
[12:36]《DOTA2》国服注册与激活指南全攻略
2013/04/28 DOTA
Python利用ansible分发处理任务
2015/08/04 Python
Flask框架WTForm表单用法示例
2018/07/20 Python
Python识别快递条形码及Tesseract-OCR使用详解
2019/07/15 Python
Python enumerate内置库用法解析
2020/02/24 Python
使用Python FastAPI构建Web服务的实现
2020/06/08 Python
如何使用css3实现一个类在线直播的队列动画的示例代码
2020/06/17 HTML / CSS
css3实现平移效果(transfrom:translate)的示例
2020/11/13 HTML / CSS
Html5 实现微信分享及自定义内容的流程
2019/08/20 HTML / CSS
英国婴儿及儿童产品商店:TigerParrot
2019/03/04 全球购物
德国婴儿服装和婴儿用品购买网站:Baby Sweets
2019/12/08 全球购物
应届毕业生求职信范文
2013/12/18 职场文书
小区停车场管理制度
2014/01/27 职场文书
祖国在我心中演讲稿300字
2014/05/04 职场文书
挂职个人工作总结
2015/03/05 职场文书
死者家属慰问信
2015/03/24 职场文书
童年读书笔记
2015/06/26 职场文书
圣诞晚会主持词
2015/07/01 职场文书
学校教师培训工作总结
2015/10/14 职场文书
Mysql效率优化定位较低sql的两种方式
2021/05/26 MySQL