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



我正在使用未检测到的chromedriver在python selenium中,我的问题是它总是在结束程序后关闭窗口。

例如,我有这样一行代码:
driver.get('www.google.com')

它显然打开了谷歌,但随后立即关闭了窗口。当我使用自己的chromedriver时,窗口保持打开状态,即使程序结束,我仍然可以在该窗口上冲浪。

解决方案吗?

未检测到的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()

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

这是因为未检测到的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')

最新更新