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. 2020 Multi-University Training Contest 1 . Fibonacci Sum 水题改编

    题意很简单,就是让你求这个东西,这个时候你发现,原题???? https://blog.csdn.net/acdreamers/article/details/23039571 哦,只是原来写过的哪一 ...

  2. golang中关于死锁的思考与学习

    1.Golang中死锁的触发条件 1.1 书上关于死锁的四个必要条件的讲解 发生死锁时,线程永远不能完成,系统资源被阻碍使用,以致于阻止了其他作业开始执行.在讨论处理死锁问题的各种方法之前,我们首先深 ...

  3. mybatis-spring注解MapperScan的原理

    很多开发者应该都知道,我们只使用@MapperScan这个注解就可以把我们写的Mybatis的Mapper接口加载到Spring的容器中,不需要对每个Mapper接口加@Mapper这个注解了,加快了 ...

  4. 可靠消息最终一致性【本地消息表、RocketMQ 事务消息方案】

    更多内容,前往IT-BLOG 一.可靠消息最终一致性事务概述 可靠消息最终一致性方案是指当事务发起方执行完成本地事务后并发出一条消息,事务参与方(消息消费者)一定能够接收消息并处理事务成功,此方案强调 ...

  5. vue 之 computed方法自带缓存踩坑1

    使用场景:ant-vue 穿梭框使用 页面使用computed方法处理组织结构数据,退出页面时,对加载数据做了set null 操作,再次进入页面时,穿梭框只显示数据,无法做左右穿梭功能. 原因:co ...

  6. What's the best way to read and understand someone else's code?

    Find one thing you know the code does, and trace those actions backward, starting at the end Say, fo ...

  7. Semantic Kernel 入门系列:💬Semantic Function

    如果把提示词也算作一种代码的话,那么语义技能所带来的将会是全新编程方式,自然语言编程. 通常情况下一段prompt就可以构成一个Semantic Function,如此这般简单,如果我们提前可以组织好 ...

  8. 部署:戴尔iDRAC+Ubuntu 18.04系统安装

    Ubuntu镜像下载链接:http://mirrors.aliyun.com/ubuntu-releases/18.04/ 1.登录戴尔管理口 2.点击虚拟控制台 3.选择镜像 4.挂载镜像 5.选择 ...

  9. Fatal error: Uncaught SoapFault exception:解决办法

    SOAP-ERROR: Parsing WSDL: failed to load external entity Fatal error: Uncaught SoapFault exception: ...

  10. Java中「Future」接口详解

    目录 一.背景 二.Future接口 1.入门案例 2.Future接口 三.CompletableFuture类 1.基础说明 2.核心方法 2.1 实例方法 2.2 计算方法 2.3 结果获取方法 ...