51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 11536|回复: 7
打印 上一主题 下一主题

求解:selenium webdriver中frame切换问题

[复制链接]
  • TA的每日心情

    2016-1-8 14:14
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    跳转到指定楼层
    1#
    发表于 2014-12-25 09:44:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    本帖最后由 want8023 于 2014-12-25 10:05 编辑

    =============
    ........
    driver.switch_to_frame("iframe1")
    driver.switch_to_frame("iframe2")
    driver.find_element_by_id("XX").click()
    ......
    现在想切换回到iframe1框架下定位元素,如何充iframe2切回iframe1下
    小白,刚学不久,希望大神指点迷津.....感激不尽!
    dr.switchTo().defaultContent() 提示在python下提示没有
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

  • TA的每日心情
    无聊
    2020-12-8 11:20
  • 签到天数: 605 天

    连续签到: 1 天

    [LV.9]测试副司令

    2#
    发表于 2014-12-25 10:30:48 | 只看该作者
    同样的做法呀,你怎么切到2的再怎么切到1啊
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3#
    发表于 2015-2-3 09:26:32 | 只看该作者
    Python下不要使用switch_to_frame,最好使用switch_to方法,例如:switch_to().frame("iframe1"),Python下的selenium的frame定位,如果是在一个页面中存在多个iframe,直接通过name(或者其他方式)定位,如果是多级的弹出层,那么需要一级一级的定位,反之也是一样。
    下面是同一个页面的frame定位:
    driver.switch_to().frame("frame1")
    driver.switch_to().frame("frame2")
    ......
    如果需要回到frame1,直接使用定位方法
    driver.switch_to().frame("frame1")
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    5#
    发表于 2015-12-23 19:28:58 | 只看该作者
    log_1 发表于 2015-2-3 09:26
    Python下不要使用switch_to_frame,最好使用switch_to方法,例如:switch_to().frame("iframe1"),Python下 ...

    问一下   为什么我用你说的方法  报如下错误呢

    driver.switch_to().frame("topFrame")
    AttributeError: SwitchTo instance has no __call__ method
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2017-9-21 15:25
  • 签到天数: 50 天

    连续签到: 1 天

    [LV.5]测试团长

    6#
    发表于 2015-12-23 20:35:39 | 只看该作者
    你是从一个defaultContent()下切换到frame1()是,正常情况应该是  进入页面后,可以直接切换到frame1或者frame2 。如果切换到frame1后,需要先切换到defaultContent再切换到frame2。java下是这样写的,python应该跟这个一样
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    7#
    发表于 2015-12-24 14:42:13 | 只看该作者
    prettyfool 发表于 2015-12-23 20:35
    你是从一个defaultContent()下切换到frame1()是,正常情况应该是  进入页面后,可以直接切换到frame1或者fr ...

    先switch到defaultcontent 再切换也不行,它的层级关系类似于
    frameset
         topframe
         frameset
               leftframe
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    8#
    发表于 2016-3-17 14:22:28 | 只看该作者
    lxl521999 发表于 2015-12-23 19:28
    问一下   为什么我用你说的方法  报如下错误呢

    driver.switch_to().frame("topFrame")

    driver.switch_to.frame("topFrame")
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-4-20 16:18 , Processed in 0.320712 second(s), 32 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表