用crontab(python)运行selenium

Uso*_*obi 5 python ubuntu selenium crontab

我有一个python脚本,通过selenium调用chrome与下一行.

 ff = webdriver.Chrome('/home/user01/webScraping/CollectAndGo/chromedriver')
Run Code Online (Sandbox Code Playgroud)

从shell脚本调用python脚本.

python /home/user01/webScraping/CollectAndGo/cgcom.py > /home/user01/webScraping/CollectAndGo/cgcom.log 2>&1
Run Code Online (Sandbox Code Playgroud)

当我从终端运行脚本或只是执行.sh文件时,它运行正常,但是当我安排crontab作业时,它会因下一个错误而失败.

   raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: u'unknown error: Chrome failed to start: exited abnormally\n  (Driver info: chromedriver=2.9.248304,platform=Linux 3.5.0-36-generic x86_64)' 
Run Code Online (Sandbox Code Playgroud)

该错误与此问题的第一行代码有关.有人知道为什么会发生这种情况吗?

Lou*_*uis 9

尝试启动浏览器时最明显的问题cron是,即使您的计算机上运行了X,DISPLAY也没有为从您crontab启动浏览器的进程设置环境变量,因此会失败.

解决方案范围从琐碎到超级复杂.一个简单的解决方案是接受如果没有X运行并且手动设置DISPLAY为你的脚本将不会运行:0,这是Ubuntu启动的默认X服务器的默认显示号.

例如,如果我在command一行中使用此命令,则Chrome启动时没有问题:

DISPLAY=:0 google-chrome
Run Code Online (Sandbox Code Playgroud)

  • 是的,这样做了!谢谢!(你们怎么知道这些事情?!) (4认同)