HTML <iframe> 标签
定义:iframe 元素会创建包含另外一个文档的内联框架(即行内框架)。
frame标签有frameset、frame、iframe三种,frameset跟其他普通标签没有区别,不会影响到正常的定位
而frame与iframe对selenium定位而言是一样的,selenium有一组方法对frame进行操作。
 
1、怎么切到frame中(switch_to.frame())
  selenium提供了switch_to.frame()方法来切换frame
  switch_to.frame(reference):reference是传入的参数,用来定位frame,可以传入id、name、index以及selenium的WebElement对象
  通常采用id和name就能够解决绝大多数问题。但有时候frame并无这两项属性,用xpath定位,传入WebElement对象
 
举个例子:
  <iframe src="myframetest.html" />
  driver.switchTo().frame(driver.findElement(By.xpath("//iframe[contains(@src,'myframe')]")));
 
2、从frame中切回主文档(switch_to.default_content())
  切到frame中之后,我们便不能继续操作主文档的元素,这时如果想操作主文档内容,则需切回主文档。
  driver.switch_to.default_content()
 
3、嵌套frame的操作(switch_to.parent_frame())
  有时候我们会遇到嵌套的frame,如下:
  <html> <iframe id="frame1"> <iframe id="frame2" / > </iframe> </html>
 
***从主文档切到frame2,一层层切进去***
  driver.switch_to.frame("frame1") driver.switch_to.frame("frame2")
  driver.switch_to.parent_frame() # 如果当前已是主文档,则无效果
 
  有了parent_frame()这个相当于后退的方法,我们可以随意切换不同的frame,随意的跳来跳去了。
  所以只要善用以下三个方法,遇到frame分分钟搞定:
  driver.switch_to.frame(reference) driver.switch_to.parent_frame() driver.switch_to.default_content()
 
  注意: iframe使用后必须跳出来,否则无法定位其它元素
  跳出方法: driver.switchTo().defaultContent();
 

操作Frame和IFrame中页面元素的更多相关文章

  1. selenium自动化测试入门 定位frame和iframe中的元素对象

    < frame> <iframe> 标签,浏览器会在标签中打开一个特定的页面窗口(框架),它在本窗口中嵌套进入一个网页,当用selenium定位页面元素的时候会遇到定位不到fr ...

  2. selenium-java,定位并操作frame和iframe内的元素

    因为frame和iframe的原因,在frame里的元素不能直接定位需要切到相应的frame才可以对元素进行操作,下面是涉及的方法 webDriver.switchTo().defaultConten ...

  3. Java Selenium (十二) 操作弹出窗口 & 智能等待页面加载完成 & 处理 Iframe 中的元素

    一.操作弹出窗口   原理 在代码里, 通过 Set<String> allWindowsId = driver.getWindowHandles(); 来获取到所有弹出浏览器的句柄, 然 ...

  4. 使用jquery操作iframe中的元素

    使用jquery操作iframe中的元素<iframe src="/test/demo.htm" width="99%" height="300 ...

  5. C#】通过遍历IFrame访问页面元素

    最近在做一个小项目,期间需要用到C#去操作IE页面中的元素,实现自动填写表单并且提交的功能,想这网上关于这方面的东西肯定很多,于是开始在网上找资料. 在逆心的博客上找到些东西对自己帮助很大,原文链接: ...

  6. Selenium_webdriver获取iframe子页面元素

    有时候我们在定位一个页面元素的时候发现一直定位不了,反复检查自己写的定位器没有任何问题,代码也没有任何问题.这时你就要看一下这个页面元素是否在一个iframe中,这可能就是找不到的原因之一.如果你在一 ...

  7. JQuery调用iframe父页面元素与方法

    JQuery操作iframe父页面与子页面的元素与方法 下面简单使用Jquery来操作iframe的一些记录,这个使用纯JS也可以实现. 第一.在iframe中查找父页面元素的方法: $('#id', ...

  8. 【学习】如何用jQuery获取iframe中的元素

    (我的博客网站中的原文:http://www.xiaoxianworld.com/archives/292,欢迎遇到的小伙伴常来瞅瞅,给点评论和建议,有错误和不足,也请指出.) 说实在的,以前真的很少 ...

  9. Js/Jquery获取iframe中的元素

    转载: Js/Jquery获取iframe中的元素 - - ITeye技术网站http://java-my-life.iteye.com/blog/1275205 在web开发中,经常会用到ifram ...

随机推荐

  1. Python入门 - 控制结构

    python控制结构有:for循环, while循环, if条件语句,下面我们直接上代码. 一.for循环 a = range(5) for x in a : print(x) 0 1 2 3 4二. ...

  2. 分布式监控系统Zabbix3.2监控数据库的连接数

    在 分布式监控系统Zabbix3.2跳坑指南 和 分布式监控系统Zabbix3.2给异常添加邮件报警 已经介绍了如何安装以及报警.此篇通过介绍监控数据库的3306端口连接数来了解如何监控其它端口和配置 ...

  3. Android破解学习之路(二)——Android游戏 滚动的天空破解

    经过上一期的破解教程,相信大家跟我一样都是对破解是初入门,我们破解的目的是什么? 赚钱吗?百度上一大堆破解版的应用,破解的人有赚到钱吗?实实在在的说,其实也是方便自己而已. 玩个游戏,感觉过不去了,来 ...

  4. Zepto中的Swipe事件失效

    需要阻止浏览器默认滑动的事件 document.addEventListener('touchmove', function (event) { event.preventDefault(); }, ...

  5. 关于APIcloud中的登录与注册的简单实现

    1.apiclou实现页面的登录方式,不适用自带的登录. html代码 <div class="login_ipt_box"> <img class=" ...

  6. sort函数的用法与实验

    用了这么久的sort排序,但是一直没有对他进行总结. 像我这样的蒟蒻有了sort排序就再也没有看过快排.冒泡排序.桶排序了...... sort的头文件<algorithm> 存在于C++ ...

  7. 关于C语言中static保留字的使用

             static存储类型可以用于全部变量,无需考虑变量声明的位置.但是作用于块外部和块内部时具有不同的作用.         (1)当作用于函数内部时,和每次程序离开所在块就会丢失值的自 ...

  8. 【算法】二叉查找树实现字典API

    参考资料 <算法(java)>                           — — Robert Sedgewick, Kevin Wayne <数据结构>       ...

  9. jQuery使用serialize(),serializeArray()方法取得表单数据+字符串和对象类型两种表单提交的方法

    原始form表单值获取方式(手动): $.ajax({ type: "POST", url: "ajax.php", data: "Name=摘取天上 ...

  10. zephyr初始化流程

    1.调用应用层main()函数         kernel/init.c      181行 /** * * @brief Mainline for kernel's background task ...