说明:本篇博客基于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()

更多技术文章

推荐文章

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: