selenium多个frame怎么定位,
一driver.switch_to.frame(id):可以通过编号切换到内联框架之前学习了硒切换到内联框架的方法,代码如下
从硒导入网驱动程序
driver=webdriver .铬合金()
driver.switch_to.frame(0) #1 .用设计的指数来定位,第一个是0
#司机。切换到。框架(框架1 )# 2 .用编号来定位
#司机。切换到。框架(“我的框架”)# 3 .用名字来定位
#司机。切换到。框架(驱动程序。find _ element _ by _ tag _ name( iframe )# 4用元素对象来定位源码中并没有说可以通过编号定位,但事实上是可以的
二。嵌套内联框架的切换然而,对于嵌套的iframe,又该如何解决:
1.指数定位行不通当时第一点想到的是通过指数定位,即第一个内联框架为0,第二个为一
1 __author__=小翟
2
3从硒导入自动化测试
四导入时间
5导入操作系统
6
7 driver=webdriver .铬合金()
8 file _ path= file:/// OS。路径。abspath(帧。html’)
9 driver.get(文件路径)
10
11 #窗口最大化
12 driver.maximize_window()
13
14 #隐性等待30秒
15 driver.implicitly_wait(30)
16 #先找到iframe1(id=f1 )
17 driver.switch_to.frame(0)
18 #再找到其下面的iframe2(id=f2 )
19 driver.switch_to.frame(1)
20
21 #下面就可以正常的操作元素了
22司机。find _ element _ by _ id( kw )。send_keys(硒)
23司机。按标识查找元素( su ).单击()
24
25时间。睡眠(2)
26
27 driver.quit()运行结果报错了,显示的第19行出错,找不到下标为一的设计
回溯(最近一次呼叫):
文件d:/python _ workshop/python 6/selenium _ web driver/多层框架定位 py ,模块中的第19行
driver.switch_to.frame(1)
文件d:\ Program \ python 34 \ lib \ site-packages \ selenium \ web driver \ remote \ switch _ to。py ,第89行,在设计中
自我. driver.execute(命令。切换到帧,{id :帧参考})
文件d:\ Program \ python 34 \ lib \ site-packages \ selenium \ web driver \ remote \ web driver。py ,第312行,在执行中
自我。错误处理程序。check _ response(响应)
文件d:\ Program \ python 34 \ lib \ site-packages \ selenium \ web driver \ remote \ error handler。py ,第242行,在检查_响应中
引发异常类(消息、屏幕、堆栈跟踪)
硒。常见。例外情况。nosuchframeexception:消息:没有这样的帧
(会话信息:chrome=66.0.3359.139)
(驱动信息:chrome驱动=2。35 .528161(5b 82 f 2d 2 aae 0 ca 24 b 877009200 ced 9065 a 772 e 73),平台=Windows NT 6.1.7600 x86_64)一定要注意,对于并列的iframe,我们可以用下标表示,但是嵌套的,除了第一个可以用下标0表示外,其他都不行
#并列的内联框架
iframe -下标0
iframe -下标一
iframe -下标2#嵌套的内联框架
iframe - id=f1
iframe - id=f2
iframe - id=f32 .通过编号定位#先找到iframe1(id=f1 )
driver.switch_to.frame(f1 )
#再找到其下面的iframe2(id=f2 )
driver.switch_to.frame(f2 )完美解决,还有一个问题,我们要向从切到上级iframe,应该如何实现
3.从子内联框架切到父内联框架硒提供了一个类似后退的方法,如下
司机。切换到。parent _ frame()#如果当前已是主文档,则无效果三。总结对于内联框架处理,目前主要有三种方法
1 driver.switch_to.frame(参考)
2 driver.switch_to.parent_frame()
3司机。切换到。默认内容()其中第一种内联框架的切换的参数有四个:idex,id,名称,webelement
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。