Selenium2+python自动化14-iframe
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Selenium2+python自动化14-iframe,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2593字,纯文字阅读大概需要4分钟。
内容图文
![Selenium2+python自动化14-iframe](/upload/InfoBanner/zyjiaocheng/738/fc4ed54ed9cf44bda27a1dd854f20718.jpg)
转载:https://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标记的最大区别是在网页中嵌入 的<Iframe></Iframe>所包含的内容与整个页面是一个整体,而<Frame>< /Frame>所包含的内容是一个独立的个体,是可以独立显示的。另外,应用Iframe还可以在同一个页面中多次显示同一内容,而不必重复这段内 容的代码。
二、163登录界面
1.打开http://mail.163.com/登录页面10
2.用firebug定位登录框
3.鼠标停留在左下角(定位到iframe位置)时,右上角整个登录框显示灰色,说明iframe区域是整个登录框区域
4.左下角箭头位置显示iframe属性<iframe id="x-URS-iframe" frameborder="0" name=""
![Selenium2+python自动化14-iframe - 文章图片](/upload/getfiles/0001/2021/5/4/20210504122416059.jpg)
?
三、切换iframe
1.由于登录按钮是在iframe上,所以第一步需要把定位器切换到iframe上
2.用switch_to_frame方法切换,此处有id属性,可以直接用id定位切换
![Selenium2+python自动化14-iframe - 文章图片](/upload/getfiles/0001/2021/5/4/20210504122416364.jpg)
?
四、如果iframe没有id怎么办?
1.这里iframe的切换是默认支持id和name的方法的,当然实际情况中会遇到没有id属性和name属性为空的情况,这时候就需要先定位iframe
2.定位元素还是之前的八种方法同样适用,这里我可以通过tag先定位到,也能达到同样效果
QQ交流群:232607095
(版权所有:"yoyoketang"微信公众号)
![Selenium2+python自动化14-iframe - 文章图片](/upload/getfiles/0001/2021/5/4/20210504122416524.jpg)
? 五、释放iframe
1.当iframe上的操作完后,想重新回到主页面上操作元素,这时候,就可以用switch_to_default_content()方法返回到主页面
![Selenium2+python自动化14-iframe - 文章图片](/upload/getfiles/0001/2021/5/4/20210504122416958.jpg)
?
六、如何判断元素是否在iframe上?
1.定位到元素后,切换到firepath界面
2.看firebug工具左上角,如果显示Top Window说明没有iframe
3.如果显示iframe#xxx这样的,说明在iframe上,#后面就是它的id
![Selenium2+python自动化14-iframe - 文章图片](/upload/getfiles/0001/2021/5/4/20210504122417117.jpg)
?
?
七、如何解决switch_to_frame上的横线呢?
1.先找到官放的文档介绍
![Selenium2+python自动化14-iframe - 文章图片](/upload/getfiles/0001/2021/5/4/20210504122417570.jpg)
?
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()
在学习过程中有遇到疑问的,可以加selenium(python+java) QQ群交流:646645429
《selenium+python高级教程》已出书:selenium?webdriver基于Python源码案例
内容总结
以上是互联网集市为您收集整理的Selenium2+python自动化14-iframe全部内容,希望文章能够帮你解决Selenium2+python自动化14-iframe所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。