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下函数参数的传递(参数带星号的说明)
Sep 19 Python
Python break语句详解
Mar 11 Python
Python实现字典的遍历与排序功能示例
Dec 23 Python
Python使用requests及BeautifulSoup构建爬虫实例代码
Jan 24 Python
解决pycharm 误删掉项目文件的处理方法
Oct 22 Python
Django中modelform组件实例用法总结
Feb 10 Python
Python各种扩展名区别点整理
Feb 27 Python
解决Keras中循环使用K.ctc_decode内存不释放的问题
Jun 29 Python
openCV提取图像中的矩形区域
Jul 21 Python
Matplotlib 绘制饼图解决文字重叠的方法
Jul 24 Python
Python读取多列数据以及用matplotlib制作图表方法实例
Sep 23 Python
python批量生成身份证号到Excel的两种方法实例
Jan 14 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 缓存实现代码及详细注释
2010/05/16 PHP
PHP 验证码的实现代码
2011/07/17 PHP
PHP+fiddler抓包采集微信文章阅读数点赞数的思路详解
2019/12/20 PHP
云网广告中的代码,提示出错,大家找找
2006/11/21 Javascript
js类中的公有变量和私有变量
2008/07/24 Javascript
JS实现字体选色板实例代码
2013/11/20 Javascript
创建、调用JavaScript对象的方法集锦
2014/12/24 Javascript
JS实现表单中checkbox对勾选中增加边框显示效果
2015/08/21 Javascript
jquery删除table当前行的实例代码
2016/10/07 Javascript
利用jquery实现下拉框的禁用与启用
2016/12/07 Javascript
基于JS实现bookstore静态页面的实例代码
2017/02/22 Javascript
mac下的nodejs环境安装的步骤
2017/05/24 NodeJs
bootstrap可编辑下拉框jquery.editable-select
2017/10/12 jQuery
vue.js父子组件通信动态绑定的实例
2018/09/28 Javascript
JavaScript实现好看的跟随彩色气泡效果
2020/02/06 Javascript
JS实现“全选”和"全不选"功能代码实例
2020/02/06 Javascript
JS图片懒加载技术实现过程解析
2020/07/27 Javascript
vue 数据操作相关总结
2020/12/17 Vue.js
简化Python的Django框架代码的一些示例
2015/04/20 Python
python实现将英文单词表示的数字转换成阿拉伯数字的方法
2015/07/02 Python
在Django的模板中使用认证数据的方法
2015/07/23 Python
numpy.delete删除一列或多列的方法
2018/04/03 Python
python3实现多线程聊天室
2018/12/12 Python
Ubuntu18.04下python版本完美切换的解决方法
2019/06/14 Python
python中利用numpy.array()实现俩个数值列表的对应相加方法
2019/08/26 Python
python爬虫要用到的库总结
2020/07/28 Python
canvas之自定义头像功能实现代码示例
2017/09/29 HTML / CSS
美国最大的香水连锁店官网:Perfumania
2016/08/15 全球购物
周仰杰(JIMMY CHOO)法国官方网站:闻名世界的鞋子品牌
2019/09/27 全球购物
优秀女职工事迹材料
2014/02/06 职场文书
2014群众路线学习笔记
2014/11/06 职场文书
先进党支部申报材料
2014/12/24 职场文书
初中信息技术教学计划
2015/01/22 职场文书
出租车拒载检讨书
2015/01/28 职场文书
2015年外联部工作总结
2015/04/03 职场文书
python实现ROA算子边缘检测算法
2021/04/05 Python