首页 > 解决方案 > Selenium 不在 cronjob 的路径中

问题描述

我正在尝试在谷歌云平台上的 Linux/Debian 10 机器上为脚本设置一个 cronjob,但我收到关于 chromedriver 不在 PATH 中的错误:

selenium.common.exceptions.WebDriverException: Message: 'chromedriver' executable needs to be in PATH. Please see https://sites.google.com/a/chromium.org/chromedriver/home

我正在尝试使用此 cronjob 运行脚本:

30 2 * * * cd /home/scripts/data-pull && /usr/bin/python3 /home/scripts/data-pull/login.py

该脚本使用 selenium,如果我尝试使用 运行它python 3 login.py,它可以正常工作。这是因为我在脚本中设置了一个变量来标识 chromedriver 所在的位置CHROMEDRIVER_PATH = '/usr/local/bin/chromedriver'

这意味着这里的问题是让 cronjob 在触发时找到 chromedriver 可执行文件。我怎么做?

非常感谢您帮助解决此问题!

标签: linuxseleniumcrondebian

解决方案


你可以试试:

  1. 在 crontab 本身中定义环境变量
CHROMEDRIVER_PATH='/usr/local/bin/chromedriver'

# m h  dom mon dow   command
30 2 * * * cd /home/scripts/data-pull && /usr/bin/python3 /home/scripts/data-pull/login.py
  1. 在执行脚本之前创建一个导出 env 变量的 bash 脚本。然后在你的 crontab 中使用这个脚本
export CHROMEDRIVER_PATH='/usr/local/bin/chromedriver'
cd /home/scripts/data-pull && /usr/bin/python3 /home/scripts/data-pull/login.py
  1. 设置环境变量/etc/environment

推荐阅读