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
posted @   NovLeo  阅读(172)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示