2.9 iframe
2.9 iframe
一、frame和iframe区别
Frame与Iframe两者可以实现的功能基本相同,不过Iframe比Frame具有更多的灵活性。 frame是整个页面的框架,iframe是内嵌的网页元素,也可以说是内嵌的框架
Iframe标记又叫浮动帧标记,可以用它将一个HTML文档嵌入在一个HTML中显示。它和Frame标记的最大区别是在网页中嵌入 的<Iframe></Iframe>所包含的内容与整个页面是一个整体,而<Frame>< /Frame>所包含的内容是一个独立的个体,是可以独立显示的。另外,应用Iframe还可以在同一个页面中多次显示同一内容,而不必重复这段内 容的代码。
二、案例操作:163登录界面
1.打开http://mail.163.com/登录页面
2.用firebug定位登录框
3.鼠标停留在左下角(定位到iframe位置)时,右上角整个登录框显示灰色,说明iframe区域是整个登录框区域
4.左下角箭头位置显示iframe属性<iframe id="x-URS-iframe" frameborder="0" name=""
三、切换iframe
1.由于登录按钮是在iframe上,所以第一步需要把定位器切换到iframe上
2.用switch_to_frame方法切换,此处有id属性,可以直接用id定位切换
四、如果iframe没有id怎么办?
1.这里iframe的切换是默认支持id和name的方法的,当然实际情况中会遇到没有id属性和name属性为空的情况,这时候就需要先定位iframe元素对象
2.定位元素还是之前的八种方法同样适用,这里我可以通过tag先定位到,也能达到同样效果
五、释放iframe
1.当iframe上的操作完后,想重新回到主页面上操作元素,这时候,就可以用switch_to_default_content()方法返回到主页面
六、如何判断元素是否在iframe上?
1.定位到元素后,切换到firepath界面
2.看firebug工具左上角,如果显示Top Window说明没有iframe
3.如果显示iframe#xxx这样的,说明在iframe上,#后面就是它的id
七、如何解决switch_to_frame上的横线呢?
1.先找到官放的文档介绍
2.python的脚本上面划一横线,是说这个语法已经过时了(也可以继续用,只是有部分人有强迫症)。上面文档介绍说官方已经不推荐上面的写法了,用这个写法就好了driver.switch_to.frame()
八、参考代码如下:
#coding:utf-8
from selenium importwebdriver
driver =webdriver.Firefox() driver.get("http://mail.163.com/") driver.implicitly_wait(30) #切换iframe#iframe = driver.find_element_by_tag_name("iframe")#driver.switch_to_frame(iframe)#driver.switch_to_frame("x-URS-iframe") driver.switch_to.frame("x-URS-iframe") driver.find_element_by_name("email").send_keys("123") driver.find_element_by_name("password").send_keys("456") #释放iframe,重新回到主页面上 driver.switch_to.default_content()
转载于:https://www.cnblogs.com/lunvo/p/9183026.html
2.9 iframe相关推荐
- Selenium2+python自动化24-js处理富文本(带iframe)
前言 上一篇Selenium2+python自动化23-富文本(自动发帖)解决了富文本上iframe问题,其实没什么特别之处,主要是iframe的切换,本篇讲解通过js的方法处理富文本上iframe的 ...
- FRAME与IFRAME
FRAME与IFRAME 框架概念 : 所谓框架便是网页画面分成几个框窗,同时取得多个 URL.只需要 转载于:https://www.cnblogs.com/vibratea/archive/200 ...
- 用原生js的postMessage实现iframe传值,也可以用于跨域嵌套iframe传值
Window postMessage() 方法 定义和用法 postMessage() 方法用于安全地实现跨源通信. 语法 otherWindow.postMessage(message, targe ...
- iframe几种常用代码片段
<iframeid="SGframe"src="外部文件名.html"frameborder="no"scrolling=" ...
- ASP.NET小收集:IFrame使用
使用Iframe制作一个固定框架,很方便与象后台网站之类的页面 1<htmlxmlns="http://www.w3.org/1999/xhtml">2<head ...
- iframe自动调整高度能在IE5里实现吗
偶已经理解到style="height:expression(main.document.body.scrollHeight)"只对第一次显示的内嵌网页有效,如果里面的内容更新必须 ...
- 如何实现iframe(嵌入式帧)的自适应高度
好几次看到有人提问问到如何实现 iframe 的自适应高度,能够随着页面的长度自动的适应以免除页面和 iframe 同时出现滚动条的现象,刚好我在工作中也碰到了类似问题,于是上网翻查,东抄抄西看看,弄 ...
- “画中画”效果--谈IFRAME标签的使用
作者:秋实 文章来源:天极网页陶吧 纵观时下网站,本来网速就有些慢,可是几乎每页都要放什么Banner,栏目图片,版权等一大堆雷同的东西,当然,出于网站风格统一.广告效应的需要,本无可厚非,可毕 ...
- Iframe 用法浅析
解释成"浏览器中的浏览器"很是恰当 <iframe frameborder=0 width=170 height=100 marginheight=0 marginwidth ...
- ajax iframe实现文件上传,iframe实现Ajax文件上传效果示例
avascript部分 ajax 文件上传~~ window.οnlοad=function(){ var form=document.getElementsByTagName('form')[0]; ...
最新文章
- vue 函数 路由跳转_vue中通过路由跳转的三种方式
- python的yield和yield from
- XGBoost的参数说明
- .NET Core微服务之路:基于Consul最少集群实现服务的注册与发现(一)
- 146. LRU Cache
- parameter localparam define的区别
- CentOS7 reset脚本,用于初始化新的虚拟机
- 位图像素的颜色 携程编程大赛hdu
- Mac中Python版本随意切换终极指南,简单到爆,什么都不用设置
- 那些真正有用的经验,都是和高手过招换来的
- day08-----------面向对象(传智视频)
- Xcode 清除最近使用纪录
- Exchange2003/2010共存模式环境迁移
- C# 设置Windows程序窗口为穿透状态
- python中threading模块_举例详解Python中threading模块的几个常用方法
- 番茄花园GHOST SP3无法安装IIS 信息服务的解决方法
- 怎样将OFD转成PDF并保留电子签章
- 卫星遥感影像查询网址
- Corrupted STDOUT by directly writing to native stream in forked JVM 1. See FAQ web page and the dump
- 不恰当使用线程池处理 MQ 消息引起的故障
热门文章
- 微软认知服务开发实践(1) - 牛津计划简介
- MVC教程第一篇:准备工作
- ashx文件的几种使用
- .NET方法演化史 从Delegate到Lambda再到LINQ
- pytorch中获取指定位置元素
- [机器学习-回归算法]Sklearn之线性回归实战
- flask执行python脚本_如何从Flask应用程序执行Shell脚本
- 网络爬虫中X-CSRF-Token和Status 403问题解决方案(Java或Python)
- Namomo Spring Camp Div2 Week1 - 第三次打卡
- 扩展欧几里得exgcd算法 acm寒假集训日记22/1/12