7、Selenium常用操作之窗口切换
窗口切换
当我们点击页面连接跳转到新的页面时,有两种方式,一种时在新的浏览器窗口打开链接页面,还有一种是当前窗口访问链接页面,如果是新的窗口打开新的链接,我们想操作新窗口的内容,是定位不到元素的,这时候我们就需要想办法解决这个问题 ?
有两种思路:
思路一:我们可以删除超链接标签的target = ‘_black’属性,使其不在新的窗口打开页面,而是在当前窗口打开页面,就不需要考虑窗口切换的问题了
思路二:就是我们本章节介绍的窗口切换,只需要将浏览器驱动切换到新打开的窗口即可
- 获取当前窗口句柄:driver.current_window_handle
- 获取所有窗口句柄:driver.window.handles
- 返回结果为列表。列表存放当前浏览器打开的所有窗口句柄,元素顺序就是窗口打开的顺序,所以可以使用-1作为最新窗口的索引
- 切换到指定窗口:driver.switch_to_window(窗口句柄)
- 代码示例
from time import sleep from selenium import webdriver # 获取浏览器驱动 driver = webdriver.Chrome() # 打开百度网页 driver.get('https://www.baidu.com') # 浏览器窗口最大化 driver.maximize_window() # 点击新闻超链接 driver.find_element_by_link_text('新闻').click() # 获取所有窗口句柄 windows = driver.window_handles print(windows) # 窗口切换到最新打开的窗口 driver.switch_to_window(windows[-1]) sleep(5) # 退出浏览器 driver.quit()
浙公网安备 33010602011771号