selenium多个frame怎么定位,

  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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: