2

我有以下代码片段可以正常工作:

from pyvirtualdisplay import Display
from selenium import webdriver

display = Display(visible=0, size=(800, 600))
display.start()
browser = webdriver.Firefox()
browser.get('http://www.google.com')
print(browser.title)
browser.quit()
display.stop()

但是当我通过添加忽略 SIGCHLD 信号时

import signal
signal.signal(signal.SIGCHLD, signal.SIG_IGN)

在代码的开头,我收到以下错误:

selenium.common.exceptions.WebDriverException:消息:“浏览器似乎在我们可以连接之前已经退出。输出是:b'错误:无法打开显示::1127\n'

忽略 SIGCHLD 与显示有何关系?以及如何解决它?

4

1 回答 1

1

最后我通过处理 SIGCHLD 解决了这个问题,而不是忽略它:

def sigchld_nahdler(signum, frame):
    os.waitpid(0, 0)

signal.signal(signal.SIGCHLD, sigchld_handler)
于 2014-02-27T15:18:46.993 回答