Selenium开发的Instagram自动登录程序运行结束后页面自动关闭是什么原因?
问题原因
- 这是Selenium的默认运行逻辑:当Python脚本所有代码执行完毕后,webdriver实例会被自动销毁,关联的Chrome浏览器进程也会随之关闭,属于框架的正常设计。
- 你的代码还存在一处隐性错误:
RandomnessTime = WebDriverWait(driver, (1 - RandomnessTime))行如果输入的随机时间大于1,等待时间会变成负数,直接触发参数非法报错,且这行代码没有实际触发等待逻辑,属于冗余错误代码。
解决方案
方案1:配置浏览器进程分离(推荐)
初始化Chrome driver时添加detach参数,让浏览器进程和脚本进程解绑,脚本执行完成后浏览器不会自动关闭,直到你手动关闭浏览器:
# 先导入Chrome配置类 from selenium.webdriver.chrome.options import Options # 初始化driver前添加配置 chrome_options = Options() chrome_options.add_experimental_option("detach", True) # 初始化时传入配置参数 driver = webdriver.Chrome(service=service, options=chrome_options)
注意:使用该方案后如果需要主动释放资源,需手动调用
driver.quit(),否则可能残留后台chromedriver进程。
方案2:添加脚本阻塞逻辑
在所有业务代码最后添加一行阻塞输入语句,让脚本不会直接执行完成,浏览器也会保持运行:
# 放在代码的最后一行 input("操作完成,按任意键关闭浏览器并退出程序>>")
内容的提问来源于stack exchange,提问作者BluBalloon
相关产品推荐
相关产品推荐

