Selenium自动化Facebook登录后Chrome窗口几秒内关闭问题求助
问题原因及解决方案
你的Chrome窗口在登录Facebook后自动关闭,大概率是以下几种情况导致的,对应的解决方法如下:
1. ChromeDriver与Chrome浏览器版本不兼容
你手动指定了chromedriver的本地路径,如果当前Chrome浏览器版本和该驱动版本不匹配,登录后页面加载过程中就可能触发驱动崩溃,直接导致浏览器窗口关闭。
解决方法:
利用你已经导入的ChromeDriverManager自动匹配并安装对应版本的驱动,替换原来的驱动初始化代码:
# 替换原有的 driver = webdriver.Chrome('chromedriver') driver = webdriver.Chrome(ChromeDriverManager().install())
2. 缺少浏览器持久化配置
默认情况下,Selenium代码执行完毕后会自动关闭浏览器窗口,哪怕你添加了sleep(100),如果驱动进程意外终止或触发隐性退出逻辑,窗口还是会关闭。
解决方法:
添加ChromeOptions配置,强制浏览器在代码执行后保持打开状态:
options = Options() options.add_experimental_option("detach", True) # 让浏览器窗口在代码结束后继续保留 # 初始化驱动时传入配置 driver = webdriver.Chrome(ChromeDriverManager().install(), options=options)
3. Facebook的反自动化检测
Facebook有严格的反爬机制,一旦检测到自动化工具登录,可能会强制终止页面会话,导致浏览器窗口被关闭。
解决方法:
添加禁用自动化标识的配置,模拟真实用户的浏览器环境:
options = Options() options.add_experimental_option("detach", True) options.add_argument("--disable-blink-features=AutomationControlled") options.add_experimental_option("excludeSwitches", ["enable-automation"]) options.add_experimental_option('useAutomationExtension', False) # 补充用户代理,进一步模拟真实访问 options.add_argument("user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36") driver = webdriver.Chrome(ChromeDriverManager().install(), options=options)
4. 未捕获的异常导致驱动退出
虽然你用了try-except块,但部分异常可能没被正确捕获(比如页面跳转后元素定位失败、网络超时等),会直接导致驱动进程异常终止,窗口随之关闭。
解决方法:
在except块中打印详细的错误堆栈,定位具体问题:
except Exception as e: import traceback traceback.print_exc() print("The error raised is: ", e)
内容的提问来源于stack exchange,提问作者Sahil Singh Rawat
相关产品推荐
相关产品推荐

