wap网站 全屏,一般给公司做网站用什么软件,做视频网站需要流媒体吗,住房住房和城乡建设厅网站转载自http://www.cnblogs.com/yoyoketang/p/6128619.html前言有很多小伙伴在拿163作为登录案例的时候#xff0c;发现不管怎么定位都无法定位到#xff0c;到底是什么鬼呢#xff0c;本篇详细介绍iframe相关的切换以http://mail.163.com/登录页面10为案例#xff0c;详细介…转载自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属性三、切换iframe1.由于登录按钮是在iframe上所以第一步需要把定位器切换到iframe上2.用switch_to_frame方法切换此处有id属性可以直接用id定位切换四、如果iframe没有id怎么办1.这里iframe的切换是默认支持id和name的方法的当然实际情况中会遇到没有id属性和name属性为空的情况这时候就需要先定位iframe2.定位元素还是之前的八种方法同样适用这里我可以通过tag先定位到也能达到同样效果QQ交流群232607095(版权所有yoyoketang微信公众号)五、释放iframe1.当iframe上的操作完后想重新回到主页面上操作元素这时候就可以用switch_to_default_content()方法返回到主页面六、如何判断元素是否在iframe上1.定位到元素后切换到firepath界面2.看firebug工具左上角如果显示Top Window说明没有iframe3.如果显示iframe#xxx这样的说明在iframe上#后面就是它的id七、如何解决switch_to_frame上的横线呢1.先找到官放的文档介绍2.官方已经不推荐上面的写法了用这个写法就好了driver.switch_to.frame()八、参考代码如下# coding:utf-8from selenium import webdriverdriver 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()