如何使用Python的Selenium关闭并重启浏览器?求示例代码及问题解决
问题原因分析
用driver.close()关闭浏览器后,原有的driver对象已经和浏览器进程彻底断开连接,此时再调用driver.get()必然报错——因为该driver实例已完全失效。要重新启动浏览器,必须重新初始化WebDriver对象。
另外补充:driver.close()仅关闭当前标签页;如果浏览器只剩最后一个标签页,浏览器会随之退出,但无论哪种情况,原driver实例都无法复用。若要彻底终止浏览器进程,建议使用driver.quit(),它会关闭所有标签页并结束整个浏览器进程。
正确实现代码示例
from selenium import webdriver from selenium.webdriver.chrome.service import Service from webdriver_manager.chrome import ChromeDriverManager # 初始化第一个浏览器实例 driver = webdriver.Chrome(service=Service(ChromeDriverManager().install())) driver.get("https://www.google.com") # 执行操作后彻底关闭浏览器 driver.quit() # 重新初始化浏览器实例,实现重启 driver = webdriver.Chrome(service=Service(ChromeDriverManager().install())) driver.get("https://www.google.com") # 操作完成后再次关闭浏览器 driver.quit()
额外场景处理(无需重启浏览器,仅切换标签页)
如果只是想关闭当前标签页并打开新页面,不需要重启整个浏览器,可以用以下方式:
# 打开新标签页 driver.execute_script("window.open('');") # 切换到新标签页(window_handles按打开顺序存储标签页句柄) driver.switch_to.window(driver.window_handles[1]) driver.get("https://www.google.com") # 关闭当前标签页 driver.close() # 切回原来的标签页 driver.switch_to.window(driver.window_handles[0])
内容的提问来源于stack exchange,提问作者Murali Raju Nadakuditi
相关产品推荐
相关产品推荐

