Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python-如何防止chromedriver.exe关闭中断信号的套接字连接?_Python_Selenium_Selenium Chromedriver_Interrupt Handling - Fatal编程技术网

python-如何防止chromedriver.exe关闭中断信号的套接字连接?

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__

我在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__ == "__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语言,它可能会帮助你。我会调查的