51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 1750|回复: 0
打印 上一主题 下一主题

selenium+python之iframe切换

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2018-4-19 14:41:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
selenium+pythoniframe切换
1. 背景介绍
采用selenium+python进行了基础功能页面的冒烟操作,在操作过程中当有iframe的时候,需要切换到iframe后才可以对iframe中的元素进行操作
2. iframe切换方法
    Iframe的切换方法主要分成如下几个:
1) driver.switch_to.frame(reference)
① driver.switch_to.frame(0)  # 1.用frameindex来定位,第一个是0#
    index0开始,传入整型参数即判定为用index定位,传入str参数则判定为用id/name定位
② driver.switch_to.frame("frame1")  # 2.id来定位#
③ driver.switch_to.frame("myframe")  # 3.name来定位#
④ driver.switch_to.frame(driver.find_element_by_tag_name("iframe"))  # 4.WebElement对象来定
WebElement对象,即用find_element系列方法所取得的对象,我们可以用tag_namexpath等来定位frame对象
例如:
<iframe src="myframetest.html" />
xpath定位,传入WebElement对象:
driver.switch_to.frame(driver.find_element_by_xpath("//iframe[contains(@src,'myframe')]"))
2) driver.switch_to.parent_frame()
从子frame切回到父frame
3) driver.switch_to.default_content()
    切换主文档
[size=10.0000pt]3. BAP的iframe操作说明
1) 一般的iframe操作说明
① 最外层有一个iframe
② 当点击左侧的菜单后,会跳转到另一个子iframe,此时需要进行iframe切换操作
例如如下的driver.switch_to.frame("ec_projectManage")
file:///C:\Users\ADMINI~1\AppData\Local\Temp\1\ksohtml\wps4F60.tmp.jpg
③ 当操作时,要考虑到是否还嵌套了新的iframe,例如上面接下来的上载操作就嵌套新的子iframe
     driver.switch_to.frame("wizar_iframe_step1")
file:///C:\Users\ADMINI~1\AppData\Local\Temp\1\ksohtml\wps4F61.tmp.jpg
④ 当完成了上载选择后,需要重新回到步骤2的实体配置iframe,注意要切换回来
     driver.switch_to.frame("ec_projectManage")
⑤ 当完成了实体配置的相关操作,要考虑一下其他操作要回到外面的主文档
     driver.switch_to.default_content()
    注意:这个每个方法操作的时候,最后一定要切换到默认主文档,否则后面的操作会无法正确执行。
2) 使用过程中无idiframe切换举例说明:
file:///C:\Users\ADMINI~1\AppData\Local\Temp\1\ksohtml\wps4F72.tmp.jpg
切换到无idiframe方法,获取下载对话框中的内容
text1=driver.find_element_by_xpath('/html/body/div[11]/div[2]/div[3]/div[1]/div')   #定位到iframe上层的div
text2=text1.find_element_by_tag_name("iframe").get_attribute("src")          #获取div下的iframe的src值
text=text1.find_element_by_tag_name("iframe")             #通过获取到的iframe对象src值对应iframe元素
driver.switch_to.frame(text)                              #定位到该无id的iframe对象
                        
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1
回复

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-11-23 05:02 , Processed in 0.062327 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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