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

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与显示有何关系?以及如何解决呢?

最佳答案

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

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

signal.signal(signal.SIGCHLD, sigchld_handler)

关于python - 如果忽略SIGCHLD,则Firefox Webdriver无法正常工作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21994097/

10-11 23:17