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中的文件和目录操作实现代码
Mar 13 Python
在Python的Django框架中包装视图函数
Jul 20 Python
Python编程中字符串和列表的基本知识讲解
Oct 14 Python
基于python的Tkinter编写登陆注册界面
Jun 30 Python
python使用 HTMLTestRunner.py生成测试报告
Oct 20 Python
tensorflow建立一个简单的神经网络的方法
Feb 10 Python
Tensorflow实现卷积神经网络用于人脸关键点识别
Mar 05 Python
python 去除txt文本中的空格、数字、特定字母等方法
Jul 24 Python
Python flask框架post接口调用示例
Jul 03 Python
Python 剪绳子的多种思路实现(动态规划和贪心)
Feb 24 Python
Django User 模块之 AbstractUser 扩展详解
Mar 11 Python
Python使用BeautifulSoup4修改网页内容
May 20 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/08/05 PHP
php数组函数序列之array_combine() - 数组合并函数使用说明
2011/10/29 PHP
PHP strip_tags()去除HTML、XML以及PHP的标签介绍
2014/02/18 PHP
神盾加密解密教程(二)PHP 神盾解密
2014/06/08 PHP
10款PHP开源商城系统汇总介绍
2015/07/23 PHP
PHP抽奖算法程序代码分享
2015/10/08 PHP
php mysql procedure实现获取多个结果集的方法【基于thinkPHP】
2016/11/09 PHP
PHP面向对象多态性实现方法简单示例
2017/09/27 PHP
PHP缓存工具XCache安装与使用方法详解
2018/04/09 PHP
PHP如何根据文件头检测文件类型实例代码
2018/10/14 PHP
js中replace的用法总结
2013/12/27 Javascript
JavaScript的常见兼容问题及相关解决方法(chrome/IE/firefox)
2013/12/31 Javascript
浅析jquery数组删除指定元素的方法:grep()
2016/05/19 Javascript
Javascript类型系统之undefined和null浅析
2016/07/13 Javascript
Three.js快速入门教程
2016/09/09 Javascript
javascript设置文本框光标的方法实例小结
2016/11/04 Javascript
javascript输出AscII码扩展集中的字符方法
2016/12/26 Javascript
angular ng-repeat数组中的数组实例
2017/02/18 Javascript
JavaScript实现的浏览器下载文件的方法
2017/08/09 Javascript
JS伪继承prototype实现方法示例
2018/06/20 Javascript
在vue中v-bind使用三目运算符绑定class的实例
2018/09/29 Javascript
jQuery实现的模仿雨滴下落动画效果
2018/12/11 jQuery
JavaScript定时器常见用法实例分析
2019/11/15 Javascript
VUE table表格动态添加一列数据,新增的这些数据不可以编辑(v-model绑定的数据不能实时更新)
2020/04/03 Javascript
python中如何使用朴素贝叶斯算法
2017/04/06 Python
Python贪吃蛇游戏编写代码
2020/10/26 Python
numpy求平均值的维度设定的例子
2019/08/24 Python
Python爬虫之Selenium中frame/iframe表单嵌套页面
2020/12/04 Python
以实惠的价格提供高品质的时尚:Newchic
2018/01/18 全球购物
Marlies Dekkers内衣美国官方网上商店:高端内衣品牌
2018/11/12 全球购物
大专毕业生自我评价分享
2013/11/10 职场文书
2014年护士个人工作总结
2014/11/11 职场文书
公司股份合作协议书
2014/12/07 职场文书
2015年药房工作总结
2015/04/25 职场文书
辞职信格式范文
2015/05/13 职场文书
阿甘正传观后感
2015/06/01 职场文书