软件测试 / 测试开发丨 Selenium 网页 frame 与多窗口处理
免费领取:测试资料+测试用例+简历模板+测试文档
本文为霍格沃兹测试开发学社学员学习笔记分享
一、多窗口处理.
1.1、多窗口简介
点击某些链接,会重新打开⼀个窗⼜,对于这种情况,想在新页⾯上操作,就得先切换窗⼜了。获取窗⼜的唯⼀标识⽤句柄表⽰,所以只需要切换句柄,就可以在多个页⾯灵活操作了
1.2、多窗口处理流程
先获取当前窗口的句柄 driver.current_window_handle
再获取所有的窗口句柄 driver.windows_handles
然后判断当前窗口是否为需要操作的窗口,如果不是则,切换到下一个窗口,如果是,则在当前窗口进行操作
二、多网页 frame 处理
2.1、frame 简介
在 web 自动化中,如果一个元素始终无法定位,那么很有可能是 frame 中
什么是 frame 呢?
frame 是 html 的框架,所谓框架就是可以在同一个页面显示不止一个区域,基于 html 框架,又可以分为垂直框架和水平框架(cols,rows)
frame 分类 frame 标签分为 frameset,ifame、frame 三种 frameset 和普通的标签一样,不会影响正常的元素定位,可以使用 index、id、name、webelement 等方式定位到 frameframe、iframe 相当于 selenium 而言,则需要进行一些特殊的操作后,才能到定位到元素
2.2、多 frame 切换
frame 存在两种一种嵌套的一种未嵌套的
切换 framedriver.swich_to.frame():根据元素 id、index 切换 framedriver.switch_to.default_content():切换到默认的 framedeiver.switch_to.parent_frame():切换到父级 frame
未嵌套的 frame
driver.switch_to.frame(‘frame 的 id’):有 id 时优先使用 id
driver.switch_to.frame(‘frame-index’):没有 id 的时间根据索引来处理,索引从 0 开始
嵌套的 frame
对于嵌套的 frame,则先进入到 frame 的父节点,再进到子节点,然后可以就可以子节点中的元素对象进行操作了
driver.switch_to.frame(“父节点”)
driver.switch_to.frame(“子节点”)
版权声明: 本文为 InfoQ 作者【测试人】的原创文章。
原文链接:【http://xie.infoq.cn/article/51b8b1e67afa2420f583d0d96】。文章转载请联系作者。
评论