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

发表于:2018-5-29 10:39

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:疯了的小蜗    来源:博客园

  首先还是围绕以下几个方面来看:
  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定位

上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号