webdriver 定位frameset中的frame

最近在写页面的自动化脚本,在定位frameset 中的frame时,定位不到,经不断尝试,终于解决之,甚感欣慰,O(∩_∩)O~

页面结构如下图:

问题如下:我在登录成功后,为了判断用户名,先从默认状态driver.switch_to_frame("topFrame")下,但是之后再定位左侧菜单栏时,就定位不到元素了,通过查看结构,原来是处在另外一个frame中(leftFrame),但是此时再通过driver.switch_to_frame("leftFrame"),提示找不到frame,从网上查找解决方法,有人说最好不用driver.switch_to_frame()方法,而是改用driver.swich_to().frame()方法,但是试了试,报has no __called()__方法,最后又找方法说:需要先driver.switch_to_defaultContent(),然后再driver.switch_to_fram()到需要的frame当中,尝试过后也不行

解决方法:先driver.find_element_by_id("frame")定位到topFrame下同级的frameset,然后再left_frame = frameset.find_element_by_name("leftFrame"),最后再driver.switch_to_frame(left_frame)即可。

总结:具体使用何种方法,主要还是看页面结构,不同结构使用不同方法,哇咔咔O(∩_∩)O~

时间: 2024-08-07 21:20:13

webdriver 定位frameset中的frame的相关文章

Java中通过Selenium WebDriver定位iframe中的元素

问题:有一些元素,无论是通过id或是xpath等等,怎么都定位不到. 分析:这很可能是因为你要定位的元素被嵌套在了当前页面的一个iframe元素中,Selenium对iframe中的元素有特殊的定位规则,WebDriver不能够直接进行定位. 解决办法:我们要把这个iframe元素找出来,让WebDriver转移到这个iframe元素上,之后再让WebDriver对iframe中的元素进行定位. 因为最近在用Java来做一些东西,所以就顺便说一下Selenium在Java环境下的使用,总共分三步

selenium webdriver在 ie 中无法定位元素和ie文本框字符输入过慢

在跑自动化测试脚本的时候,不同的ie浏览器,有时候无法定位页面中的元素, 关闭ie的保护模式就可以了. 把他们的保护模式都关闭. 字符输入过慢,把64位的IEDriversERVER替换成 32位的

定位JVM中占CPU较高的堆栈

疑问: 在linux中,使用top命令,发现某java进程占用CPU较高,如何定位到是那个线程,执行哪些代码导致的呢? 第一步:找到占用CPU较高的进程号,使用top命令查看. 从上图可以看到,java进程号为759的进程占用cpu特别高. 第二步:查看当前进程759所有线程占用cpu情况 使用top –Hp pid 来查看,shift + t命令展示或关闭线程情况. 从上图,可以看出760的java线程占用CPU较高. 第三步:查看760线程的堆栈信息. 使用命令 jstack 759 | g

【iOS7的一些总结】8、破解UIView中坐标系的秘密:关于UIView中的frame、bound和center

对于刚刚接触iOS开发不久的新手来说,UIView中的frame.bound和center的确容易产生思维的误区,尤其是想要对视图类的bound这个概念若想要理解深入,真的要花一番功夫.在经过一系列查阅参考资料和动手试验之后,终于对这几个概念产生了一些领悟,记录于此可供有同样困惑的同学参考. 首先贴一篇博文做参考,http://blog.csdn.net/mad1989/article/details/8711697:这篇博文已经对UIView的frame和bound做了一些阐述,但是我依然觉得

使用三种方式定位html中的元素

1)使用三种方式定位html中的元素a)通过ID$("#ID")b)通过标签名$("标签名")c)通过样式名$(".样式名")2)dom中,需要判段查找到的元素是否为null,而jquery中,无需判段,因为jquery本身内置判段器,在查找不到的情况下,返回"undefined" <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN&quo

定位布局中关于z-index的一些问题

定位布局中关于z-index的一些问题 使不同父元素的子元素不会被其他父元素遮盖 背景 两父元素相互遮盖(或部分遮盖) html如下 <div class="main"> <div class="a"> <div class="a1">1</div> <div class="a2">2</div> </div> <div class=&q

selenium中的webdriver定位元素失败的常见原因

自动化测试中经常会出现无法定位元素的情况,报selenium.common.exceptions.NoSuchElementException错误 Frame/Iframe原因定位不到元素: 这个是最常见的原因,首先要理解下frame的实质,frame中实际上是嵌入了另一个页面,而webdriver每次只能在一个页面识别,因此需要先定位到相应的frame,对那个页面里的元素进行定位. 解决方案: 如果iframe有name或id的话,直接使用switch_to_frame("name值"

MyEclipse中消除frame引起的“the file XXX can not be found.Please check the location and try again.”的错误

读者如要转载,请标明出处和作者名,谢谢. 地址01:http://space.itpub.net/25851087 地址02:http://www.cnblogs.com/zjrodger/ 作者名:zjrodger [环境] MyEclipse 10.7 [问题描述] 在一个页面上使用了frameset,因为该页面所指向的页面路径不对,便进行手动修改,修改时却出现了很烦的问题,输入一个字就弹出一个提示框“the file XXX can not be found.Please check th

WebDriver定位元素方法

如果把页面上的元素看作人的话,在现实世界如何找到某人呢?方法有三: 一.通过人本身的属性,例如他的姓名,手机号,身份证号,性别,这些可区别他人的属性.在web页面上的元素也有这些属性,例如,id.name.class name.tag name等. 二.在找查某人的时候可以通过位置属性,例如,x国.x市.x路.x号.Xpath和CSS就提供了这种以标签名为层级关系的定位方式. 三.可以借助相关他人的属性来找到某人,例如,我没有小明的联系方式,但我有他爸爸的手机号,那么通过他爸爸手机号也可以找到小