Selenium处理iframe定位于切换问题解决办法

首先还是围绕以下几个方面来看:
1.什么是iframe?
2.为什么我们要定位iframe?
3.我们怎样定位iframe,与切换iframe?
1.什么是iframe?
b/s架构都使用iframe,官方的定义是这样的:【iframe 元素会创建包含另外一个文档的内联框架(即行内框架)】。什么意思呢,就像是我们的某个主页,里面有好多小模块,每      个 小模块用这个叫做iframe的东西分开来,方便维护,也方便开发各自开发各自的部分,互不相干。
通常不在同一个iframe分为两种情况:一种是包含,一种是平级。
2.为什么我们要定位iframe?
介于iframe是独立开的一个一个的小模块,就像是船舱的特性,所以iframe就行船舱的舱门,想要进入船舱去找东西,就必须先进入舱门,所以当元素在不同的iframe时,就必须先进入到元素所在地的iframe之后才能定位到元素。
3.我们怎样定位iframe,与切换iframe?
iframe几种情况:1.包含关系也就是嵌套 。2.平级关系
定位iframe几种方式:1.用iframe中的ID来定位 2.用iframe中的name来定位 3.用xpath来定位 4.用css来定位

1.用iframe中的ID来定位
self.driver.switch_to.frame('noticeCheckWin')
2.用iframe中的name来定位
self.driver.switch_to.frame('noticeCheckWin')
3.用xpath来定位
self.frame2 = self.driver.find_element_by_xpath('/html/body/div[2]/div[2]/div[2]/iframe[3]')
self.driver.switch_to.frame(self.frame2)#定位动态的iframe,可以把动态的部分删了然后再用xpath定位
转载请注明本文链接: http://www.mayidui.net/t2350.html
游客
登录后才可以回帖,登录 或者 注册