iframe:

iframe 就是一个特殊的html 元素, 它在原来的html 范围内,开辟了一个新的HTML。

iframe 元素会创建包含另外一个文档的内联框架(即行内框架)

理解:网页嵌套网页

frameset:   frameset 元素可定义一个框架集。它被用来组织多个窗口(框架)。每个框架存有独立的文档。


<html>
<frameset cols="25%,50%,25%">
<frame src="frame_a.htm" />
<frame src="frame_b.htm" />
<frame src="frame_c.htm" />
</frameset>
</html>

两者的区别是:

iframe 用于在网页内显示网页。和frameset不同的是,

frameset内置好几个子html

而iframe 只内置一个子html

webdriver 切换frame方法:driver.switch_to.frame(frame_reference)

frame_reference

  以QQ邮箱登录界面查找账号密码登录元素为例:

  1. frame 元素的 name 属性值 或者ID属性值 :driver.switch_to.frame('login_frame')
  2. 索引值 (从0开始):0  driver.switch_to.frame(1)
  3. frame 所对应的WebElement:driver.switch_to.frame(driver.find_element_by_id('login_frame'))

嵌套frame中如何逐层切换?

<html>
<iframe id="layer1">
<iframe id="layer2" / >
</iframe>
</html>

操作:

嵌套frame需要一层一层的切换

driver.switch_to.frame('layer1')
driver.switch_to.frame('layer2') 返回上一层frame driver.switch_to.parent_frame() 从里面的frame切换回主HTML driver.switch_to.default_content()

webdriver切换frame的方法的更多相关文章

  1. 【转】selenium之 定位以及切换frame

    转载自:http://www.voidcn.com/blog/huilan_same/article/p-6155896.html 很多人在用selenium定位页面元素的时候会遇到定位不到的问题,明 ...

  2. 【Selenium2】【selenium之 定位以及切换frame(iframe)】

    参考:http://blog.csdn.net/huilan_same/article/details/52200586 总有人看不明白,以防万一,先在开头大写加粗说明一下: frameset不用切, ...

  3. Selenium 切换 Frame

    我们知道网页中有一种节点叫作 iframe ,也就是子 Frame ,相当于页面的子页面,它的结构和外部网页的结构完全一致. Selenium 打开页面后,它默认是在父级 Frame 里面操作,而此时 ...

  4. 【转载】selenium之 定位以及切换frame(iframe)

    更多关于python selenium的文章,请关注我的专栏:Python Selenium自动化测试详解 总有人看不明白,以防万一,先在开头大写加粗说明一下: frameset不用切,frame需层 ...

  5. selenium之定位以及切换frame

    总有人看不明白,以防万一,先在开头大写加粗说明一下: frameset不用切,frame需层层切! 很多人在用selenium定位页面元素的时候会遇到定位不到的问题,明明元素就在那儿,用firebug ...

  6. selenium之 定位以及切换frame(iframe)(转)

    frame标签有frameset.frame.iframe三种,frameset跟其他普通标签没有区别,不会影响到正常的定位,而frame与iframe对selenium定位而言是一样的,seleni ...

  7. switch_to_frame,切换frame框架

    页面包含frame/iframe标签,需要先切换到该frame标签,再去定位属于这个frame的元素.   如果要再去定位其他frame的元素,需要回到该frame的上级,定位到要选择的frame,不 ...

  8. selenium之 定位以及切换frame(iframe)

    Set<String> windows = driver.getWindowHandles();        int count = 0;        for(String handl ...

  9. selenium webdriver三种等待方法

    webdriver三种等待方法 1.使用WebDriverWait from selenium import webdriverfrom selenium.webdriver.common.by im ...

随机推荐

  1. PHP商品秒杀问题解决方案实例详解【mysql与redis】

    本文实例讲述了PHP商品秒杀问题解决方案.分享给大家供大家参考,具体如下: 引言 假设num是存储在数据库中的字段,保存了被秒杀产品的剩余数量. if($num > 0){ //用户抢购成功,记 ...

  2. CentOS 7 卸载OpenJdk安装Oracle Jdk1.8

    CentOS 7 卸载OpenJdk安装Oracle Jdk1.81.查询openjdk:rpm -qa | grep jdk2.卸载OpenJdkrpm -e --nodeps 查询到的结果3.安装 ...

  3. ThinkPHP 5.0.x、5.1.x、5.2.x 全版本远程命令执行漏洞

    ThinkPHP 5.0.x.5.1.x.5.2.x 全版本远程代码执行漏洞 作者:SoulCat. 来源:CSDN 原文:https://blog.csdn.net/csacs/article/de ...

  4. c#的BeginInvoke和EndInvoke使用demo

    BeginInvoke方法可以使用线程异步地执行委托所指向的方法.然后通过EndInvoke方法获得方法的返回值(EndInvoke方法的返回值就是被调用方法的返回值),或是确定方法已经被成功调用. ...

  5. Any Video Converter Pro for Mac注册码

    Any Video Converter Pro for Mac注册码:name:www.macmofo.comsn:000016-D84U8Q-8BN16B-WP2BV6-9RA73A-X7D4V3- ...

  6. Git config文件

    查看该文件: git config --global --list Ref: https://blog.csdn.net/themagickeyjianan/article/details/79683 ...

  7. GPU机器安装paddle

    安装基础包 yum -y install epel-release yum -y install kernel-devel yum -y install dkms 编辑文件 /etc/default/ ...

  8. day02——while、字符串格式化、运算符、编码初识

    day02 while--关键字(死循环) 格式:while 条件: ​ 循环体 print(1) while True: print("痒") print("鸡你太美& ...

  9. js 数组传统方法

    js 数组传统方法 push() 功能:向数组的末尾添加一个或多个元素 var arr = [4]; arr.push(1,2,3); // [4,1,2,3] 返回: 会返回新数组的长度length ...

  10. BZOJ3514 / Codechef GERALD07 Chef and Graph Queries LCT、主席树

    传送门--BZOJ 传送门--VJ 考虑使用LCT维护时间最大生成树,那么对于第\(i\)条边,其加入时可能会删去一条边.记\(pre_i\)表示删去的边的编号,如果不存在则\(pre_i = 0\) ...