说明:本篇博客基于selenium 4.1.0
场景说明
场景:点击某个按钮后,页面是在一个新的浏览器中出现。如百度的’更多’按钮
问题:浏览器可能自动切换到了新页面,但是selenium的driver还停留在旧页面,导致无法操作新页面
解决:使用selenium的窗口切换功能,切换到新页面之后再进行操作
切换步骤
# 步骤1:获取窗口句柄
windows = driver.window_handles # 返回的是一个句柄列表,列表排序为当前窗口顺序
# 步骤2:切换到新窗口
driver.switch_to.window(windows[-1]) # 新窗口通常为最后一个,若为其他位置则自行处理
示例
import time
from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver.Chrome()
driver.implicitly_wait(10)
driver.get('https://www.baidu.com/')
# 点击'更多'打开新窗口
driver.find_element(By.CSS_SELECTOR, '[name="tj_briicon"]').click()
print(driver.title) # 输出结果:百度一下,你就知道 -> 浏览器切到了新窗口,但selenium还没有
# 切换窗口
windows = driver.window_handles
driver.switch_to.window(windows[-1])
print(driver.title) # 输出结果:百度产品大全 -> 切到新窗口成功
time.sleep(5)
driver.quit()
视频干货合集
2024最新Python3.1x软件测试开发必备语法基础讲解
测试开发/自动化测试/性能测试/精准测试/测试左移/测试右移/人工智能测试
另免费赠送软件测试开发方面的专业资料包!助您事半功倍,提升技能,把握职场先机。
软件测试职业发展
零基础入门
测试必备编程篇
自动化测试
性能测试
测试管理
工程效能篇
面试求职篇
软件测试的面试宝典,内含一线互联网大厂面试真题、面试技巧、软件测试面试简历指导,免费领取!