目标
1. 掌握切换frame的方法
2. 掌握多窗口切换的技巧
frame切换
frame:HTML页面中的一种框架,主要作用是在当前页面中指定区域显示另一页面元素;形式一:[了解]
<frameset cols="25%,75%">
<frame src="frame_a.htm">
<frame src="frame_b.htm">
</frameset>
形式二:
<iframe name="iframe_a" src="demo_iframe.htm" width="200" height="200"></iframe>
1.1 为什么要学习frame切换
案例:打开‘注册实例.html’页面,完成以下操作
1). 填写主页面的注册信息
2). 填写注册页面A中的注册信息
3). 填写注册页面B中的注册信息
问题
1. 当前页面内无法定位注册页面A和注册页面B
frame切换方法
说明:在Selenium中封装了如何切换frame框架的方法
方法:
1). driver.switch_to.frame(frame_reference) --> 切换到指定frame的方法
frame_reference:可以为frame框架的name、id或者定位到的frame元素
2). driver.switch_to.default_content() > 恢复默认页面方法
在frame中操作其他页面,必须先回到默认页面,才能进一步操作
1.1 案例解决方案
1. 完成主页面注册信息;
2. 调用frame切换方法(switch_to.frame("myframe1"))切换到注册用户A框架中
3. 调用恢复默认页面方法(switch_to.default_content())
4. 调用frame切换方法(switch_to.frame("myframe2"))切换到注册用户B框架中
1.1 frame切换-总结
1. HTML中常用的frame框架
2. 切换框架的方法
3. 恢复到默认页面的方法
多窗口切换
说明:在HTML页面中,当点击超链接或者按钮时,有的会在新的窗口打开页面。
1.1 为什么要切换窗口?案例
需求:打开‘注册实例.html’页面,完成以下操作
1). 点击‘注册A页面’链接
2). 在打开的页面中,填写注册信息
问题
1). 无法定位注册A页面中的元素
1.1 如何实现多窗口切换?
说明:在Selenium中封装了获取当前窗口句柄、获取所有窗口句柄和切换到指定句柄窗口的方法;
句柄:英文handle,窗口的唯一识别码
方法:
1). driver.current_window_handle
--> 获取当前窗口句柄
案例解决方案分析
1. 获取‘注册实例.html’当前窗口句柄
2. 点击‘注册实例.html’页面中注册A页面
3. 获取所有窗口句柄
4. 获取注册A页面对应的窗口句柄,并切换
5. 操作注册A页面元素
1.1 多窗口切换-总结
1. 什么是句柄?
2. 获取当前窗口句柄方法
3. 获取所有窗口句柄方法
4. 切换指定句柄窗口方法