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 に答える