selenium 如何防止未检测到的chromedriver在最后一行代码后关闭窗口

hgc7kmma  于 2023-02-08  发布在  其他
关注(0)|答案(3)|浏览(158)

我在python selenium中使用未检测到的chromedriver,我的问题是它总是在程序结束后关闭窗口。
例如,我有一行代码:

driver.get('www.google.com')

它显然打开了谷歌,但随后立即关闭了窗口。当我使用自己的Chromedriver时,窗口保持打开状态,即使程序结束,我仍然可以在那个窗口上冲浪。
有什么办法吗?

lvjbypge

lvjbypge1#

我只是添加一个time.sleep(100)函数,或者终止内核

zbwhf8kr

zbwhf8kr2#

未检测到的chromedriver Chrome类中的原始del方法会退出驱动程序:

def __del__(self):
        try:
            self.service.process.kill()
        except:  # noqa
            pass
        self.quit()

扩展类并覆盖del方法,保留原始内容并注解掉self.quit()语句:

class MyUDC(uc.Chrome):
    def __del__(self):
        try:
            self.service.process.kill()
        except:  # noqa
            pass
        # self.quit()

现在,使用创建驱动程序

driver = MyUDC()
kiayqfof

kiayqfof3#

这是因为未检测到的chromedriver析构函数会在类被销毁时终止chrome进程。
然后可以扩展该类并重写__del__方法

import undetected_chromedriver.v2 as uc

class My_Chrome(uc.Chrome):
    def __del__(self):
        pass

driver = My_Chrome()
driver.get('www.google.com')

相关问题