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读写文件方法总结
Jun 09 Python
详解python开发环境搭建
Dec 16 Python
windows系统下Python环境搭建教程
Mar 28 Python
如何用itertools解决无序排列组合的问题
May 18 Python
python+pyqt实现右下角弹出框
Oct 26 Python
python实现守护进程、守护线程、守护非守护并行
May 05 Python
python 信息同时输出到控制台与文件的实例讲解
May 11 Python
django的model操作汇整详解
Jul 26 Python
Django 项目重命名的实现步骤解析
Aug 14 Python
Python facenet进行人脸识别测试过程解析
Aug 16 Python
解决Django Haystack全文检索为空的问题
May 19 Python
如何使用Tkinter进行窗口的管理与设置
Jun 30 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文件中bom的PHP代码
2012/03/13 PHP
浅析PHP中Collection 类的设计
2013/06/21 PHP
PHP的mysqli_query参数MYSQLI_STORE_RESULT和MYSQLI_USE_RESULT的区别
2014/09/29 PHP
PHP登录验证码的实现与使用方法
2016/07/07 PHP
php设计模式之备忘模式分析【星际争霸游戏案例】
2020/03/24 PHP
怎么让脚本或里面的函数在所有图片都载入完毕的时候执行
2006/10/17 Javascript
jQuery 一个图片切换的插件
2011/10/09 Javascript
jquery attr方法获取input的checked属性问题
2014/05/26 Javascript
JS实现倒计时和文字滚动的效果实例
2014/10/29 Javascript
jQuery中nextAll()方法用法实例
2015/01/07 Javascript
JS+CSS实现分类动态选择及移动功能效果代码
2015/10/19 Javascript
JavaScript面向对象之私有静态变量实例分析
2016/01/14 Javascript
input 禁止输入特殊字符的四种实现方式
2016/08/24 Javascript
BootStrap 获得轮播中的索引和当前活动的焦点对象
2017/05/11 Javascript
代码详解javascript模块加载器
2018/03/04 Javascript
Vue下路由History模式打包后页面空白的解决方法
2018/06/29 Javascript
Vuex的actions属性的具体使用
2019/04/14 Javascript
layui关闭层级、简单监听的实例
2019/09/06 Javascript
uni-app使用微信小程序云函数的步骤示例
2020/05/22 Javascript
[53:23]Secret vs Liquid 2018国际邀请赛淘汰赛BO3 第二场 8.25
2018/08/29 DOTA
python解析html开发库pyquery使用方法
2014/02/07 Python
python实现基于SVM手写数字识别功能
2020/05/27 Python
基于python神经卷积网络的人脸识别
2018/05/24 Python
python pandas 对series和dataframe的重置索引reindex方法
2018/06/07 Python
对Python Pexpect 模块的使用说明详解
2019/02/14 Python
python检查目录文件权限并修改目录文件权限的操作
2020/03/11 Python
运动鞋中的劳斯莱斯:索康尼(SAUCONY)
2017/08/09 全球购物
夜大毕业生自我鉴定
2013/10/31 职场文书
网络维护管理员的自我评价分享
2013/11/11 职场文书
十岁生日父母答谢词
2014/01/18 职场文书
阳光体育活动实施方案
2014/05/25 职场文书
《我爱祖国》演讲稿1000字
2014/09/26 职场文书
自我推荐信格式模板
2015/03/24 职场文书
2015年宣传工作总结
2015/04/08 职场文书
Go Gin实现文件上传下载的示例代码
2021/04/02 Golang
多线程Spring通过@Scheduled实现定时任务
2022/05/25 Java/Android