selenium python 学习笔记之七 Frame切换 多窗口切换

1、frame切换 

  什么是frame?frame是HTML页面中的一种框架,主要作用是在当前页面中指定区域显示另一种页面元素

    <iframe src="./html/注册A.html" name="myframe1" id="idframe1" class="cframe" scrolling="no" frameborder="1"></iframe>

    上面的HTML代码中src = './html/注册A.html' 代表从其他地方引入的HTML页面,可以是互联网上的网址,也可以是本地的HTML代码

2、frame切换方法

  -driver.switch_to.frame(frame_reference) -- >切换到指定的frame的方法,frame_reference 可以是frame框架的name,id 或者定位到的frame元素

  -driver.switch_to.default_content() --> 回复到默认页面的方法

 

  frame切换原理总结:

    -针对同一层级的frame,如果要进行切换的话,需要切回到默认的首页,不能同级子页之间切换

    -针对所要进入的frame,有多少个层级,就需要切换几次

    -不管当前在哪个层级,如果要回到默认首页,只需要调用一次回到默认首页的方法 driver.switch_to.default_content()

  

 

二、多窗口切换

  说明:在HTML页面中,当点击超链接或者按钮时,有的会在新的窗口中打开页面

2.1为什么要进行窗口切换

  案例:

  需求:打开注册实例.html“页面”,完成以下操作

  1)点击“注册A页面”连接

  2)在打开的新的窗口页面中,填写注册信息

现在我们所学的内容,只能在本窗口中进行元素定位、鼠标键盘等操作,无法切换到另外一个窗口中进行操作

2.2 如何实现多窗口切换?

  说明:

    在selenium中封装了获取当前窗口句柄、获取所有窗口句柄和切换到指定句柄窗口的方法;

    句柄:handle 窗口的唯一识别码

方法:  1) driver.current_window_handle -->获取当前句柄

     2)driver.window_handles   -->获取所有窗口的句柄

     3) driver.switch_to.window(handle)  -->切换到指定窗口

  窗口句柄:是由操作系统生成的一串唯一的识别码,是一串字符串

 

窗口切换与frame切换的区别:窗口切换是指针对浏览器窗口,frame切换是针对同一个窗口内中的不同html代码的切换

 窗口切换相当于一栋楼的一套房子,frame切换相当于一套房子中不同的房间切换

 

posted @ 2021-08-15 16:09  GalaxyStar  阅读(482)  评论(0编辑  收藏  举报