frame切换

1、html代码:
<frameset cols="25%,50%,25%">
<frame src="a.htm">
<frame src="b.htm">
<frame src="c.htm">
</frameset>

上述是frame框架页面元素
 
看看展示效果:

2、我们无法定位三个页面的元素,怎么办呢?

  说明:在Selenium中封装了如何切换frame框架的方法
  方法:
    1). driver.switch_to.frame(frame_reference) --> 切换到指定frame的方法
               frame_reference:可以为frame框架的name、id或者定位到的frame元素
 
    2). driver.switch_to.default_content() --> 恢复默认页面方法
 
如果想要切换下一个页面,需要回到默认页面在进行操作
 
3、看需求:打开‘注册实例.html’页面,完成以下操作:
 
1). 填写主页面的注册信息
2). 填写注册页面A中的注册信息
3). 填写注册页面B中的注册信息
 
 
doing:
1. 完成主页面注册信息;
2. 调用frame切换方法(switch_to.frame("myframe1"))切换到注册用户A框架中
//想要切换到另一个frame页面,需要回到默认页面
3. 调用恢复默认页面方法(switch_to.default_content())
4. 调用frame切换方法(switch_to.frame("myframe2"))切换到注册用户B框架中
 

多窗口切换

 
说明:在HTML页面中,当点击超链接或者按钮时,有的会在新的窗口打开页面。
 
1、 为什么要切换窗口?
 
如果我们定位元素,操作中打开了一个新的窗口,我们想要到新的窗口中
 
 
2、如何切换窗口?
 
  说明:在Selenium中封装了获取当前窗口句柄、获取所有窗口句柄和切换到指定句柄窗口的方法;
        句柄:英文handle,窗口的唯一识别码
 
  每个浏览器的句柄值也不一样
 
 
        方法:
              1). driver.current_window_handle -->      获取当前窗口句柄
              2). driver.window_handles -->       获取所有窗口句柄
                   3). driver.switch_to.window(handle) -->   切换指定句柄窗口
 
      先获取,在切换
 切换窗口:列表的  -1 索引对应的值,始终是最新窗口的句柄值
 
  driver.switch_to.window(handles[-1])
 
看需求:
打开‘百度首页’页面,完成以下操作
1). 点击‘百度热搜’进入热搜页面
2). 在热搜页面中,停留3s,关闭当前页面
3). 回到百度首页

doing:

1). 点击‘百度热搜’进入热搜页面
driver.find_element(by=By.CSS_SELECTOR, value='[aria-label="百度热搜"]').click()
2). 在热搜页面中,停留3s,关闭当前页面
sleep(3)
# 获取当前所有句柄
handles = driver.window_handles
# 切换到当前页面
driver.switch_to.window(handles[-1])
driver.close()
3). 回到百度首页 
driver.switch_to.window(handles[0])
关闭当前页面后,不会自动回到上一页,如果想要回到上一页操作,需要切换句柄
 
 
 
 
 
 

web自动化09-frame切换、多窗口切换的更多相关文章

  1. Selenium(六):frame切换、窗口切换

    1. 切换到frame index.html: <!DOCTYPE html> <html> <head> <meta charset="UTF-8 ...

  2. python-web自动化-元素操作:windows窗口切换 / alert切换 / iframe切换

    1. windows窗口切换:切换到要操作的窗口 有多个窗口: 1. 触发新窗口的出现 2. 得知道新窗口是谁 -- 依据窗口的window_handle来识别窗口 3. 得到窗口的window_ha ...

  3. Selenium 3----定位一组元素+多表单切换+多窗口切换

    定位一组元素 和定位单个元素类似,WebDriver提供了8种用于定位一组元素的方法.定位一组元素的方法与定位单个元素的方法类似,唯一的区别是在单词element后面多了一个s表示复数. find_e ...

  4. Python+selenium(多表单、多窗口切换)

    多表单切换 案例:在Frame.html文件种定位搜狗搜索页面,进行搜索操作 Frame.html <html> <head> <title>Frame_test& ...

  5. 【Selenium03篇】python+selenium实现Web自动化:元素三类等待,多窗口切换,警告框处理,下拉框选择

    一.前言 最近问我自动化的人确实有点多,个人突发奇想:想从0开始讲解python+selenium实现Web自动化测试,请关注博客持续更新! 这是python+selenium实现Web自动化第三篇博 ...

  6. web自动化 下拉框、切换到新窗口

    一.下拉框 相信大家在手动测试web页面时,遇到过下拉框吧,那进行web自动化测试时,如何操作下拉框,且看下文 1.selenium中提供了方法,先导入Select方法 from selenium.w ...

  7. web自动化--窗口切换

    窗口切换 handles = driver.window_handles ------获取所有窗口句柄,返回的数据是一个列表类型 driver.switch_to.window(handles[-1] ...

  8. web自动化之浏览器的窗口切换

    from selenium import webdriver from selenium.webdriver.support.wait import WebDriverWait from seleni ...

  9. web自动化 -- 浏览器窗口切换

    切换浏览器窗口 示例: from time import sleep from selenium import webdriver from selenium.webdriver.support.wa ...

  10. python - web自动化测试 - 元素操作 - 窗口切换

    # -*- coding:utf-8 -*- ''' @project: web学习 @author: Jimmy @file: 元素操作-切换.py @ide: PyCharm Community ...

随机推荐

  1. File 未释放文件权柄问题处理

    Unreleased Resource: Files Abstract 程序可能无法释放某个文件句柄. Explanation 程序可能无法成功释放某一个文件句柄. 资源泄露至少有两种常见的原因: - ...

  2. 马志强:语音识别技术研究进展和应用落地分享丨RTC Dev Meetup

    本文内容源自「RTC Dev Meetup 丨语音处理在实时互动领域的技术实践和应用]的演讲分享,分享讲师为寰语科技语音识别研究主管马志强. 01 语音识别技术现状 1.语音成为万物互联时代人机交互关 ...

  3. 《操作系统导论》读书笔记1——CPU虚拟化,进程

    系列文章目录和关于我 一丶CPU的虚拟化 一个桃子,我们称之为物理(physical)桃子.但有很多想吃这个桃子的 人,我们希望向每个想吃的人提供一个属于他的桃子,这样才能皆大欢喜.我们把给每个 人的 ...

  4. VUE百度地图API调用(手机端、PC端、微信通用)

    百度地图API-示例中心: https://lbsyun.baidu.com/jsdemo.htm#aCreateMap 1.引入百度地图(此处用到的是V2.0版本) 1> 建立一个js文件,例 ...

  5. VUE中的$set与$delete的原理

    我们上文说了,Vue 是通过 Object.defineProperty 和重写数组的原型方法来达到监控数据的目的.但是,在某些情况下,上面两种方案无法做到监控数据的变化,例如: (1):当我们给对象 ...

  6. js循环中reduce的用法简单介绍

    reduce() 方法接收一个函数作为累加器,reduce 为数组中的每一个元素依次执行回调函数,不包括数组中被删除或从未被赋值的元素,接受四个参数:初始值(上一次回调的返回值),当前元素值,当前索引 ...

  7. apt-get update报“Temporary failure resolving '***.com/cn'

    解决办法: 1.打开/etc/resolv.conf: $sudo vim /etc/resolv.conf 2.修改nameserver即DNS服务器: 我这里使用腾讯云和阿里云的DNS 加入: n ...

  8. 商品获价API调用说明:获取商品历史价格信息 代码分享

    接口名称:item_history_price 公共参数 名称 类型 必须 描述 key String 是 调用key(必须以GET方式拼接在URL中)(获取测试key和secret接入) secre ...

  9. API获取商品评论?

    前言 小伙伴们好,前两天因为个人原因耽误了内容的更新,在这里和所有的小伙伴道个歉,今天CC和大家唠唠商品评论的这个话题,大家在网上购物的决策会因为<商品评论的好坏>吗,相信绝大的一部分的小 ...

  10. [Git/SVN] Gitee使用教程

    1 Gitee Gitee 提供免费的 Git 仓库,还集成了代码质量检测.项目演示等功能. 对于团队协作开发,Gitee 还提供了项目管理.代码托管.文档管理的服务,5 人以下小团队免费. CASE ...