python selenium iframe怎么定位_python+selenium 切换iframe

转载自

http://www.cnblogs.com/yoyoketang/p/6128619.html

前言

有很多小伙伴在拿163作为登录案例的时候,发现不管怎么定位都无法定位到,到底是什么鬼呢,本篇详细介绍iframe相关的切换

以http://mail.163.com/登录页面10为案例,详细介绍switch_to_frame使用方法.

一、frame和iframe区别

Frame与Iframe两者可以实现的功能基本相同,不过Iframe比Frame具有更多的灵活性。 frame是整个页面的框架,iframe是内嵌的网页元素,也可以说是内嵌的框架

Iframe标记又叫浮动帧标记,可以用它将一个HTML文档嵌入在一个HTML中显示。它和Frame标记的最大区别是在网页中嵌入 的所包含的内容与整个页面是一个整体,而< /Frame>所包含的内容是一个独立的个体,是可以独立显示的。另外,应用Iframe还可以在同一个页面中多次显示同一内容,而不必重复这段内 容的代码。

二、163登录界面

2.用firebug定位登录框

3.鼠标停留在左下角(定位到iframe位置)时,右上角整个登录框显示灰色,说明iframe区域是整个登录框区域

4.左下角箭头位置显示iframe属性

三、切换iframe

1.由于登录按钮是在iframe上,所以第一步需要把定位器切换到iframe上

2.用switch_to_frame方法切换,此处有id属性,可以直接用id定位切换

四、如果iframe没有id怎么办?

1.这里iframe的切换是默认支持id和name的方法的,当然实际情况中会遇到没有id属性和name属性为空的情况,这时候就需要先定位iframe

2.定位元素还是之前的八种方法同样适用,这里我可以通过tag先定位到,也能达到同样效果

QQ交流群:232607095

(版权所有:"yoyoketang"微信公众号)

五、释放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.官方已经不推荐上面的写法了,用这个写法就好了driver.switch_to.frame()

八、参考代码如下

# coding:utf-8

from selenium import webdriver

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()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/506096.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

iis php网站500错误原因_如何解决iis php 500错误问题

iis php500错误的解决办法&#xff1a;1、打开PHP.ini&#xff0c;设置显示错误&#xff1b;2、把“require(./xxx.php)”改成“require(xxx.php)”&#xff1b;3、给网站的上级目录赋予iis用户读权限即可。推荐&#xff1a;《PHP视频教程》本方法适用于任何品牌的电脑。IIS 配…

win10右键一直转圈_Win10总是自动更新?教你如何关掉自动更新

小白系统免费的人工客服点击联系win10怎么关闭自动更新呢&#xff1f;平时不定期的对系统进行更新虽然可以给让我电脑的运行变得更加流畅&#xff0c;但是&#xff0c;不少用户却遇到了win10更新之后不兼容等一系列的问题&#xff0c;因此&#xff0c;就都将要将自动更新功能关…

php七牛分片上传_七牛视频切片方案 - 张小超fly的个人空间 - OSCHINA - 中文开源技术交流社区...

使用七牛 sdk 上传视频并做分片操作。step1 生成 tokenconst qiniu require("qiniu"); var accessKey proc.env.QINIU_ACCESS_KEY; var secretKey proc.env.QINIU_SECRET_KEY; var mac new qiniu.auth.digest.Mac(accessKey, secretKey); var bucket proc.env.Q…

springboot 中文文档_还在用 Swagger生成接口文档?我推荐你试试它

JApiDocs是一个无需额外注解、开箱即用的SpringBoot接口文档生成工具。编写和维护API文档这个事情&#xff0c;对于后端程序员来说&#xff0c;是一件恼人但又不得不做的事情&#xff0c;我们都不喜欢写文档&#xff0c;但除非项目前后端代码都是自己写的&#xff0c;否则API文…

wringPi 初始化GPIO 为上拉_玩转GPIO之PWM点亮呼吸灯(非树莓派)

在这篇文章&#xff0c;我介绍了基于逸宸电子开发的总线适配器来点亮LED灯的基本方法&#xff01;myastrotong&#xff1a;玩转GPIO之点灯&#xff08;非树莓派&#xff09;​zhuanlan.zhihu.com这款总线适配器的介绍见这里&#xff1a;工业级高速USB转SPI I2C PWM GPIO UART C…

php箱子,webshell箱子php版本.rar

压缩包 : webshell箱子php版本.rar 列表api.phpconfig.phpindex.php安装说明.txtadmin/config.phpadmin/exit.phpadmin/help.phpadmin/index.phpadmin/login.phpadmin/root.phpadmin/shell.phpdata/1141056911#!.datimages/0.gifimages/1.gifimages/10.gifimages/2.gifimages/3…

dnf如何快速拾取物品_DNF手游泰拉该如何获取,游戏蜂窝辅助托管快速获取泰拉...

在DNF手游中&#xff0c;一共存在三种的核心货币——点券&#xff0c;泰拉还有金币。点券是用来买商城道具的主要流动货币&#xff0c;金币则是用来打造装备的&#xff0c;而泰拉是有两种货币的共同点&#xff0c;所以它既能在商城购买各种道具&#xff0c;又能兑换金币。所以说…

php抓取页面生成html,PHP smiple html dom抓取页面内容

之前做页面抓取&#xff0c;数据采集等功能的时候&#xff0c;第一个想到的就是用正则表达式去匹配页面内容。但是对于像我这种&#xff0c;正则只懂皮毛的人来说&#xff0c;写正则是真的很恶心的一件事。去网上找&#xff0c;也不一定能改成自己需要的正则。今天给大家推荐一…

java商城_java网上商城系统怎么样?优势又有哪些?

导读&#xff1a;大家都知道Java是一款非常实用的开发语言&#xff0c;而通过Java开发的商城吸引也因为其强大安全性能与使用性能等优势受到了很多企业商家的青睐&#xff0c;那么一款功能丰富的Java商城系统也自然成为...大家都知道Java是一款非常实用的开发语言&#xff0c;而…

php socket keepalive,linux keepalive探测对应用层socket api的影响

问题大部分人都知道tcp的keepalive. 假设读者知道keepalive会如何触发. 这篇文章想讨论keepalive触发后, 对socket使用者的影响.keepalive设置修改/etc/sysctl.confubuntu# vim /etc/sysctl.confubuntu# sysctl -pfs.file-max 131072net.ipv4.tcp_keepalive_time 10net.ipv4.…

qt 文字倾斜投影_帅呆!钢铁侠中的激光投影键盘终于量产了,炫酷又好用

看过电影《钢铁侠》的朋友&#xff0c;估计都会被钢铁侠的各种黑科技所折服&#xff0c;比如钢铁装甲、全息投影、人工智能贾维斯等等。不过这些黑科技想要实现还需要一段时间。但其中有一项黑科技已经被国产厂商实现了&#xff0c;那就是——激光投影键盘。早在去年&#xff0…

手机投电脑_把王者荣耀投屏到电脑上玩更爽哦——投屏神器幕享

今天给大家介绍一款投屏神器&#xff0c;它叫做幕享。直接摆观点——现今最好用的投屏工具&#xff0c;没有之一&#xff01;它是全平台都有的软件哦&#xff0c;这意味着除了电脑&#xff0c;你还可以在安卓市场和Appstore下载到它。三个平台都有意味着什么呢&#xff0c;心细…

清华大学镜像_国内开源镜像站信息盘点

一、前言开源镜像站点是一个放置开源系统镜像文件的站点&#xff0c;免费提供镜像文件下载服务&#xff0c;可以刻盘也可以直接用虚拟光驱安装操作系统、开源软件、Linux源码网站。目前&#xff0c;各大高校都纷纷建立了自己的镜像站&#xff0c;一些有实力的大厂也开始为开源事…

php ci上传图片,CodeIgniter上传图片成功的全部过程分享

/*注意,这里是userfile,$this->upload->do_upload(),这里do_upload默认上传文件的表单名为userfile;当然也可以使用do_upload($filename),这里的$filename一定要和form_upload()里面的字符串一致.我在这里范了糊涂,最后看了手册才明白,希望大家注意哦!*/controller代码: …

labview圆环里实物动画图形_有趣的图形教案

有趣的图形教案作为一名优秀的教育工作者&#xff0c;通常会被要求编写教案&#xff0c;教案是保证教学取得成功、提高教学质量的基本条件。怎样写教案才更能起到其作用呢&#xff1f;以下是小编为大家整理的有趣的图形教案&#xff0c;希望对大家有所帮助。有趣的图形教案1活动…

python原理书籍_python书籍推荐:《深入浅出深度学习:原理剖析与Python实践》

在过去的这十年&#xff0c;深度学习已经席卷了整个科技界和工业界&#xff0c;2016年谷歌阿尔法狗打败围棋世界冠军李世石&#xff0c;更是使其成为备受瞩目的技术焦点。今日&#xff0c;小编就为大家推荐一本能让初学者和“老司机”同样感到非常有用的机器学习图书——《深入…

java kcp,重新认识KCP - osc_rreaoxa0的个人空间 - OSCHINA - 中文开源技术交流社区

什么是KCPKCP是一种网络传输协议(A Fast and Reliable ARQ Protocol)&#xff0c;可以视它为TCP的代替品&#xff0c;但是它运行于用户空间&#xff0c;它不管底层的发送与接收&#xff0c;只是个纯算法实现可靠传输&#xff0c;它的特点是牺牲带宽来降低延迟。因为TCP协议的大…

python科学计算第三版-python科学计算pdf下载

python科学计算第二版是一本Python语言基础教程&#xff0c;由张若愚编著&#xff0c;小编从网上收集而来&#xff0c;为各位免费提供下载和阅读&#xff1b;本书将使用Python各种扩展库完成数值计算、界面制作、三维可视化、图像处理、提高运算速度等任务。 ​python科学计算第…

pakeage php国内镜像,Packagist/Composer中国全量镜像 | 严佳冬

有两种方式启用本镜像服务&#xff1a;1.将配置信息添加到 Composer 的配置文件 config.json 中(系统全局配置)。2.将配置信息添加到单个项目的 composer.json 文件中(单个项目配置)。1&#xff1a;修改 composer 的全局配置文件(推荐方式)打开命令行窗口(windows用户)或控制台…

分割函数python_python strip() 函数和 split() 函数的详解及实例

一直以来都分不清楚strip和split的功能&#xff0c;实际上strip是删除的意思&#xff1b;而split则是分割的意思。因此也表示了这两个功能是完全不一样的&#xff0c;strip可以删除字符串的某些字符&#xff0c;而split则是根据规定的字符将字符串进行分割。下面就详细说一下这…