pytest中使用selenium代码运行完后浏览器自动关闭
遇到的问题
在用selenium做web自动化测试时,测试用例执行完后,自动关闭浏览器
if cls.__driver is not None and cls.__switch is False:
cls.__driver.quit()
cls.__driver = None
在写代码的时候发现,就算设置了前后置,并且添加了判断已经创建了浏览器驱动实例,并且switch标记为False才执行关闭操作,通过调试发现,就算跳过了这个判断,浏览器还是会自动关闭,运行窗口没有任何提示。
调试后发现,原来是WebDriver的机制问题。默认情况下,当 WebDriver 会话结束时,浏览器窗口会自动关闭。通过设置 "detach"
选项为 True
,可以防止这种情况发生。
def get_driver(cls):
if cls.__driver is None:
options = webdriver.ChromeOptions()
options.add_experimental_option('detach', True)
cls.__driver = webdriver.Chrome(options=options)
cls.__driver.maximize_window()
cls.__driver.implicitly_wait(10)
return cls.__driver
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!