python-如何防止chromedriver.exe关闭中断信号的套接字连接?
我在python脚本中使用selenium与网页交互。这个 脚本在Cygwin上运行。该脚本在较高级别上如下所示:python-如何防止chromedriver.exe关闭中断信号的套接字连接?,python,selenium,selenium-chromedriver,interrupt-handling,Python,Selenium,Selenium Chromedriver,Interrupt Handling,我在python脚本中使用selenium与网页交互。这个 脚本在Cygwin上运行。该脚本在较高级别上如下所示: browser = webdriver.Chrome() def signal_handler(signum, frame): browser.quit() #close other things sys.exit() def browser_function(): #do something with browser if __name__
browser = webdriver.Chrome()
def signal_handler(signum, frame):
browser.quit()
#close other things
sys.exit()
def browser_function():
#do something with browser
if __name__ == "__main__":
signal.signal(signal.SIGTERM, signal_handler)
signal.signal(signal.SIGINT, signal_handler)
browser_function()
browser.quit()
这里发生了两件不同的事情:a)正常退出和b)中断退出。在正常退出时,browser.quit()
工作正常,并关闭驱动程序(chromedriver.exe)和浏览器(chrome.exe)进程。但是,当它通过信号处理器()退出时,只有驱动程序进程关闭。我可以看到许多“chrome.exe”进程在cmd中运行
如果我在信号处理器()
中使用browser.close()
(应该只关闭chrome窗口),它会引发一个socket.error异常,说明socket.error:[Errno 104]对等方重置连接。所以我假设Ctrl+C信号将重置与浏览器的套接字连接
我想要的是防止发生此连接重置,以便可以完全退出浏览器
我不想在cmd中使用taskkill/im“chrome.exe”
,因为它也会终止用户打开的正在运行的浏览器会话。那么如何,
1) 防止中断信号关闭插座连接?或者,
2) 查找由chromedriver而不是用户打开的“chrome.exe”进程的PID 这是java语言,它可能会帮助你。我会调查的