迁移至SeleniumBase后,如何手动销毁WebDriver实例?
解决SeleniumBase实例手动销毁问题
对于长期运行的进程,无需局限于with SB(...) as sb的上下文管理模式,你可以直接实例化SeleniumBase对象并全局存储,之后通过以下方式手动销毁实例:
- 直接实例化对象:跳过
with语句,直接执行sb = SB(...),这样对象就能在全局作用域中留存使用。 - 彻底销毁实例:调用
sb.quit()方法,该方法会关闭所有关联浏览器窗口、终止ChromeDriver进程,完全清理实例占用的资源,效果等同于原生Selenium的driver.quit()。 - 仅关闭当前窗口:如果只需关闭当前活动窗口但保留实例后续使用,可调用
sb.close(),逻辑和原生Selenium的driver.close()一致。
代码示例
# 全局存储SeleniumBase实例 global_sb = None def init_selenium_base(): global global_sb # 根据实际需求配置参数(如remote模式、浏览器类型等) global_sb = SB(browser="chrome", remote=True, remote_url="你的RemoteWebDriver地址") def destroy_selenium_base(): global global_sb if global_sb is not None: # 销毁实例并释放资源 global_sb.quit() global_sb = None # 使用流程示例 init_selenium_base() # 执行各类浏览器操作... destroy_selenium_base() # 后续需要时可重新初始化实例 init_selenium_base()
需要注意:调用sb.quit()后,该实例无法再用于浏览器操作,必须重新初始化新实例才能继续使用,这和原生RemoteWebDriver的使用逻辑完全匹配。
内容的提问来源于stack exchange,提问作者Daniel Protopopov
相关产品推荐
相关产品推荐

