selenium.common.exceptions.WebDriverException: Сообщение: неизвестная ошибка: файл DevToolsActivePort не существует во время автозапуска LXDE - PullRequest
0 голосов
/ 14 октября 2019

Цель: автоматическое выполнение сценария python selenium при запуске. Мое текущее решение работало около полугода, но после обновления моего pi 3 дня назад происходит сбой python с этим исключением: selenium.common.exceptions.WebDriverException: Сообщение: неизвестная ошибка: файл 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(...)

И хромедрайвер возвращает:

[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, а версия с хроматическим драйвером ChromeDriver 72.0.3626.121

1 Ответ

0 голосов
/ 15 октября 2019

Я нашел ответ сам, и он был вызван getrandom indicates that the entropy pool has not been initialized. Rather than continue with poor entropy, this process will block until entropy is available., который указывает на отсутствующий источник энтропии, приводящий к сбою хромедривера, поскольку для установления источника энтропии требуется много времени. Все, что мне нужно было сделать, это установить rng-tools , и скрипт не вылетел. Подробнее читайте в этом блоге , который помог мне решить эту проблему.

...