Title

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()
posted @ 2023-04-02 20:15  huayaofan  阅读(81)  评论(0)    收藏  举报