selenium.common.exceptions.WebDriverException: 消息: 未知错误: DevToolsActivePort 文件在 LXDE 自动启动期间不存在



目标:在启动时自动执行python selenium脚本。 我目前的解决方案工作了大约半年,但在 3 天前更新我的 pi 后,python 崩溃并出现以下异常:selenium.common.exceptions.WebDriver异常:消息:未知错误:DevToolsActivePort 文件不存在

这是我的初始化代码:

chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--no-sandbox')
chrome_options.add_argument('--headless')
chrome_options.add_argument('--disable-dev-shm-usage')
browser = webdriver.Chrome(chrome_options=chrome_options, service_args=["--verbose", "--log-path=/home/pi/chromedriver.log"])
browser.implicitly_wait(10)
browser.set_window_size(800, 600)
browser.get(...)

Chrome 驱动程序返回:

[1571045268,786][INFO]: Launching chrome: /usr/bin/chromium-browser --disable-background-networking --disable-client-side-phishing-detection --disable-default-apps --disable-dev-shm-usage --disable-hang-monitor --disable-popup-blocking --disable-prompt-on-repost --disable-sync --disable-web-resources --enable-automation --enable-logging --force-fieldtrials=SiteIsolationExtensions/Control --headless --ignore-certificate-errors --load-extension=/tmp/.org.chromium.Chromium.ka9jxU/internal --log-level=0 --metrics-recording-only --no-first-run --no-sandbox --password-store=basic --remote-debugging-port=0 --test-type=webdriver --use-mock-keychain --user-data-dir=/tmp/.org.chromium.Chromium.13RyA2 data:,
: getrandom indicates that the entropy pool has not been initialized. Rather than continue with poor entropy, this process will block until entropy is available.
[1571045328,829][INFO]: Failed to connect to Chrome. Attempting to kill it.
[1571045328,842][INFO]: [4c8ff7afd4ca8a1d7e7d0313509df6dc] RESPONSE InitSession ERROR unknown error: DevToolsActivePort file doesn't exist
[1571045328,842][DEBUG]: Log type 'driver' lost 0 entries on destruction
[1571045328,842][DEBUG]: Log type 'browser' lost 0 entries on destruction
[0100/000000.682302:ERROR:zygote_linux.cc(660)] write: Datenübergabe unterbrochen (broken pipe) (32)

我正在使用自动启动文件~/.config/lxsession/LXDE-pi/autostart和以下命令:@/home/pi/script/main.py > /home/pi/script.log 2>&1 &顺便说一下,main.py 被标记为可执行文件并使用python3。 如果我通过 ssh 手动启动脚本,我没有问题。所以我假设这是由于在启动/自动启动过程中缺少环境变量或类似的东西导致铬崩溃。如您所见,我已经尝试了这个堆栈溢出问题的答案。

我目前的铬版本是Chromium 72.0.3626.121 Built on Raspbian , running on Raspbian 9.11和 Chrome驱动程序版本ChromeDriver 72.0.3626.121

我自己找到了答案,它是由getrandom indicates that the entropy pool has not been initialized. Rather than continue with poor entropy, this process will block until entropy is available.引起的,这表明缺少熵源导致chromedriver崩溃,因为建立熵源需要很长时间。我所要做的就是安装rng-tools,脚本没有崩溃。有关更多详细信息,请阅读这篇帮助我解决此问题的博客文章。

最新更新