У меня очень простой код 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 перед запуском.