51Testing软件测试论坛

标题: 求解:selenium webdriver中frame切换问题 [打印本页]

作者: want8023    时间: 2014-12-25 09:44
标题: 求解:selenium webdriver中frame切换问题
本帖最后由 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下提示没有

作者: joykao    时间: 2014-12-25 10:30
同样的做法呀,你怎么切到2的再怎么切到1啊
作者: log_1    时间: 2015-2-3 09:26
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")
作者: wyz_testing    时间: 2015-2-7 20:37
楼上正解
作者: lxl521999    时间: 2015-12-23 19:28
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

作者: prettyfool    时间: 2015-12-23 20:35
你是从一个defaultContent()下切换到frame1()是,正常情况应该是  进入页面后,可以直接切换到frame1或者frame2 。如果切换到frame1后,需要先切换到defaultContent再切换到frame2。java下是这样写的,python应该跟这个一样
作者: lxl521999    时间: 2015-12-24 14:42
prettyfool 发表于 2015-12-23 20:35
你是从一个defaultContent()下切换到frame1()是,正常情况应该是  进入页面后,可以直接切换到frame1或者fr ...

先switch到defaultcontent 再切换也不行,它的层级关系类似于
frameset
     topframe
     frameset
           leftframe
作者: wys702a8    时间: 2016-3-17 14:22
lxl521999 发表于 2015-12-23 19:28
问一下   为什么我用你说的方法  报如下错误呢

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

driver.switch_to.frame("topFrame")




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2