Windows10下Python+Selenium启动Chrome后自动关闭及网络错误求助
解决Selenium启动Chrome后自动关闭+日志报错的问题
嘿,我看你遇到了两个小问题:启动Chrome后页面加载完就自动关闭,还有控制台弹出的network_change_notifier_win报错。我来一步步帮你搞定:
一、浏览器自动关闭的原因及解决
你写的open_chrome函数里,driver是局部变量——函数执行完毕后,Python会自动回收这个局部变量,对应的Chrome进程也就跟着终止了,浏览器自然就关了。
解决办法很简单:把driver从函数里返回,在主程序里保存这个引用,这样Python就不会轻易回收它,浏览器就能保持打开状态。如果需要手动关闭,还可以加个等待输入的逻辑。
二、抑制烦人的日志报错
那个WSALookupServiceBegin failed with:0的报错其实是Chrome在Windows上的一个常见警告,和网络状态检测有关,完全不影响自动化功能。如果你看着不舒服,可以通过ChromeOptions来屏蔽这些冗余日志。
修改后的完整代码
from selenium import webdriver from selenium.webdriver.chrome.options import Options # 用原始字符串(加r)避免Windows路径的转义问题 chrome_path = r'D:\Xampp7\htdocs\python_automation\Gecko_Driver\chromedriver_win32\chromedriver.exe' firfox_path = r'D:\Xampp7\htdocs\python_automation\Gecko_Driver\f_geckodriver-v0.26.0-win64\geckodriver.exe' browser = "chrome" def open_chrome(): # 配置选项,屏蔽冗余日志 chrome_options = Options() chrome_options.add_experimental_option('excludeSwitches', ['enable-logging']) driver = webdriver.Chrome(executable_path=chrome_path, options=chrome_options) driver.maximize_window() driver.get('http://seleniumhq.org/') return driver # 返回driver对象 def open_firefox(): driver = webdriver.Firefox(executable_path=firfox_path) driver.get('http://seleniumhq.org/') return driver if browser == "chrome": driver = open_chrome() # 可选:加这行让浏览器保持打开,直到你按回车 # input("按回车键关闭浏览器...") # driver.quit() # 手动关闭浏览器 elif browser == "firefox": driver = open_firefox()
额外小提示
- Windows路径里的
\要注意转义,要么用原始字符串(路径前加r),要么改成双反斜杠\\,不然可能会出现路径解析错误。 - 如果用的是较新版本的Selenium(4.x+),其实可以不用指定
executable_path,只要ChromeDriver在系统PATH里,或者用Service类来管理驱动,不过你的写法在旧版本里是没问题的。
内容的提问来源于stack exchange,提问作者Gulammustufa Momin




