解决python运行selenium程序执行完后,Chrome浏览器自动关闭的问题
遇到问题:
最近在学Selenium的时候遇到一个问题,当我执行完程序,浏览器自动关闭了,我在程序中也没有写driver.quit()或driver.close()方法,已检查浏览器版本和webdriver版本是相同的
代码如下:
from selenium import webdriver def run_webdriver(): options = webdriver.ChromeOptions() options.add_argument('--start-maximized') driver=webdriver.Chrome(options=options) driver.get('https://www.baidu.com') if __name__ == '__main__': run_webdriver()
查找原因:
进过一番百度,查到了大致原因,在函数内执行的浏览器操作,在函数执行完毕之后,程序内所有的步骤都结束了,关于这段程序的进程也就结束了,浏览器包含在内;如果将浏览器全局后,打开浏览器不在函数内部,函数里面的程序执行完是不会关闭浏览器的。
解决方法:
方法一)设置option.add_experimental_option("detach", True)不自动关闭浏览器
from selenium import webdriver def run_webdriver(): options = webdriver.ChromeOptions() options.add_experimental_option('detach', True) #不自动关闭浏览器 options.add_argument('--start-maximized')#浏览器窗口最大化 driver=webdriver.Chrome(options=options) driver.get('https://www.baidu.com') if __name__ == '__main__': run_webdriver()
方法二)设置全局driver = '' ,在函数里global driver driver= webdriver.Chrome(),也是可以的,不会关闭
from selenium import webdriver driver='' def run_webdriver(): global driver options = webdriver.ChromeOptions() options.add_argument('--start-maximized')#浏览器窗口最大化 driver=webdriver.Chrome(options=options) driver.get('https://www.baidu.com') if __name__ == '__main__': run_webdriver()
方法三)同方法二,设置全局变量,即把打开浏览器的操作放在函数外部,函数执行完毕,浏览器就不会关闭
from selenium import webdriver options = webdriver.ChromeOptions() options.add_argument('--start-maximized') # 浏览器窗口最大化 driver = webdriver.Chrome(options=options) def run_webdriver(url): driver.get(url) if __name__ == '__main__': url='https://www.baidu.com' run_webdriver(url)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)