gpt4 book ai didi

python - Selenium Geckodriver Firefox 在 CRONTAB 中不工作,在终端上工作

转载 作者:行者123 更新时间:2023-12-05 07:10:27 25 4
gpt4 key购买 nike

我有一个非常简单的 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火狐版本:76.0b4 python 版本:3.6 Selenium 版本:3.14.1

因此,我认为不存在不兼容的问题。Gecko 对所有用户都是可执行的,位于/usr/bin/。

我检查了这里找到的所有信息 WebDriverException: Message: invalid argument: can't kill an exited process with GeckoDriver, Selenium and Python on RaspberryPi3

我还尝试通过添加 DISPLAY:=10 从终端单独启动 firefox 并且成功了。

该脚本在终端上运行良好,但一旦进入 CRONTAB,就会出现上述错误。

此外,我在运行前杀死了所有 firefox 进程。

最佳答案

我通过显式设置网络驱动程序的路径解决了这个问题。 IE。我替换了这个:

from selenium import webdriver
driver = webdriver.Firefox()

有了这个:

from selenium import webdriver
driver = webdriver.Firefox(executable_path=r'/usr/local/bin/geckodriver')

神奇的是,cronjob 运行良好。

关于python - Selenium Geckodriver Firefox 在 CRONTAB 中不工作,在终端上工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61229518/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com