python selenium-webdriver 标签页切换(十五)

测试时点击按钮或链接弹出新窗口,需切换标签页操作新页面功能。页面切换与frame切换原理相似,介绍了获取当前窗口句柄、所有窗口句柄及切换窗口句柄的方法,还通过代码说明切换过程,强调操作后要切换回最初标签页。

       测试过程中有时候会遇到点击某个按钮或者链接会弹出新的窗口,这时候我们的操作的页面还保持着最初打开页面,但是此时我们需要操作新打开的页面上的功能,这个时候我们需要切换一下标签页 。

  其实页面的切换与frame的切换比较相识,一种切换时本页面内frame的操作,而标签页面是多页面的操作,道理很相似。下面讲解下操作页面标签会涉及到那些方法。

 

  • driver.current_window_handle                         #获取当前窗口的句柄
  • driver.window_handles                                    #获取所有窗口句柄
  • driver.switch_to_window(windowName)               #切换窗口的句柄

 

   窗口的切换比较容易,所以我们通过代码详细了解下页面如何切换

import time
from selenium import webdriver
driver = webdriver.Chrome()
driver.get('https://www.baidu.com')
driver.maximize_window()
driver.find_element_by_id('kw').send_keys(u'梦雨情殇')  #搜索“梦雨情殇的博客”
now_handle = driver.current_window_handle   #获取当前窗口的句柄
print(now_handle)  #打印当前窗口的句柄
print(driver.title)  #获取打开页面的标题
driver.find_element_by_id('su').click() 
time.sleep(2)
driver.find_element_by_xpath('//*[@id="1"]/h3/a').click()  #点击第一条查询的数据
all_handles = driver.window_handles   #获取到当前所有的句柄,所有的句柄存放在列表当中
print(all_handles)  #打印句柄
'''获取非最初打开页面的句柄'''
for handles in all_handles:
    if now_handle != handles:
        driver.switch_to_window(handles)
print(driver.title)  #获取切换后的标题
time.sleep(3)
driver.quit()

 

效果:

        从例子中我们看到无论我们打开几个页面,但是默认的句柄依然保持在最初打开的页面,如果想要操作后面的页面的时候我们首先需要获取到当前所有的打开页面的句柄,然后在遍历选择你需要的句柄,打开标签页顺序也就是列表存放的index顺序,然后我们按照索引选择,最后在切换到对应的页面。最重要的是操作完成对应的页面一定要切换回最初的标签页,然后通过最初的页面进行切换,这边避免最后自己也不知道在操作那个页面,这个是自己的一点的经验吧。

-----------------------------------------------------------------------------

文章来源:https://www.cnblogs.com/mengyu/p/7455570.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值