Selenium Geckodriver Firefox не работает в CRONTAB, работает на терминале - PullRequest
0 голосов
/ 15 апреля 2020

У меня очень простой код python, который недавно перестал работать только при запуске в cron.

в принципе, так все и началось:

from selenium import webdriver
from pyvirtualdisplay import Display
from selenium.webdriver.firefox.options import Options

display = Display(visible=0, size=(1000, 1000))
display.start()

url = "https://www.exemple.com/admin"
opts= Options()
opts.headless = True
driver = webdriver.Firefox(options=opts)

driver.get(url)

Это вызывает ошибку:

selenium.common.exceptions.WebDriverException: Message: invalid argument: can't kill an exited process

Журналы geckodriver:

1586945401577   mozrunner::runner   INFO    Running command: "/usr/bin/firefox" "-marionette" "-headless" "-foreground" "-no-remote" "-profile" "/tmp/rust_mozprofileYPmycq"
*** You are running in headless mode.
1586945401858   addons.webextension.doh-rollout@mozilla.org WARN    Loading extension 'doh-rollout@mozilla.org': Reading manifest: Invalid extension permission: networkStatus
1586945401873   addons.webextension.screenshots@mozilla.org WARN    Loading extension 'screenshots@mozilla.org': Reading manifest: Invalid extension permission: mozillaAddons
1586945401873   addons.webextension.screenshots@mozilla.org WARN    Loading extension 'screenshots@mozilla.org': Reading manifest: Invalid extension permission: telemetry
1586945401873   addons.webextension.screenshots@mozilla.org WARN    Loading extension 'screenshots@mozilla.org': Reading manifest: Invalid extension permission: resource://pdf.js/
1586945401873   addons.webextension.screenshots@mozilla.org WARN    Loading extension 'screenshots@mozilla.org': Reading manifest: Invalid extension permission: about:reader*
Exiting due to channel error.
Exiting due to channel error.

Версия Geckodriver: 0.26 Firefox версия: 76.0b4 Python версия: 3.6 Версия Selenium: 3.14.1

Поэтому я думаю, что нет проблем несовместимости. Gecko является исполняемым для всех пользователей и находится в /usr/bin/.

Я проверил всю информацию, найденную здесь WebDriverException: Сообщение: недопустимый аргумент: невозможно завершить завершенный процесс с GeckoDriver, Selenium и Python на RaspberryPi3

Я также попытался запустить firefox в одиночку с терминала, добавив DISPLAY: = 10, и это сработало.

Сценарий отлично работает с терминала, но однажды в CRONTAB у меня есть ошибка выше.

Кроме того, я убил весь процесс firefox перед запуском.

...