Python+selenium总结(七)—多标签/多窗口之间的切换,多表单/多框架切换

1.多标签/多窗口之间的切换

场景:有的时候点击一个链接,新页面并非由当前页面跳转过去,而是新开一个页面打开,这种情况下,计算机需要识别多标签或窗口的情况。

1)获取所有窗口的句柄

handles = driver.window_handlers         

调用该方法会得到一个列表,在selenium运行过程中的每一个窗口都有一个对应的值存放在里面。

2)通过窗口的句柄进入的窗口         

driver.switch_to.window(handles[n])         通过窗口句柄激活进入某一窗口

还可以使用循环和判断进行窗体切换

代码如下:

# coding:utf-8
from selenium import webdriver

driver = webdriver.Chrome()
driver.get("https://www.taobao.com/")
# 淘宝首页handle
handle = driver.current_window_handle
driver.find_element_by_link_text("女装").click()
# 获取所有handle
handles = driver.window_handles
# 切换到淘宝首页
driver.switch_to.window(handles[0])

# for i in handles:
#     if i != handle:
#         # 切换到淘宝首页
#         driver.switch_to.window(handle)
driver.quit()

2.多表单/多框架切换     

在网页中,表单嵌套是很常见的情况,尤其是在登录的场景     

1)什么是多表单?         

实际上就是使用iframe/frame,引用了其他页面的链接,真正的页面数据并没有出现在当前源码中,但是在浏览器中我们看到,简单理解可以使页面中开了一个窗口显示另一个页面     

2)处理方法                  

直接使用id值切换进表单             

driver.switch_to.frame(value)      

定位到表单元素,再切换进入             

el = driver.find_element_by_xxx(value)             

driver.switch_to.frame(el)

4)多表单切换     

处理方法                  

driver.switch_to.default_content()         跳回最外层的页面。

driver.switch_to.parent_frame()         跳回上层的页面。

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值