Cronjob无法执行python代码

时间:2014-05-06 18:03:31

标签: python selenium cron selenium-webdriver webdriver

我们有一个Python Selenium Webdriver脚本,从命令行运行时效果很好。但是,当由cronjob运行时,代码似乎有所不同,并且脚本挂起。

python脚本滚动网页并存储信息。当通过cronjob运行时,浏览器滚动到页面底部,然后浏览器冻结,脚本挂起。不会产生任何错误消息。

cronjob会触发一个shell脚本,其中包含以下内容:

#!/bin/sh
adddate() {
    while IFS= read -r line; do
        echo "$(date) $line"
    done
}

cd /home/user
export DISPLAY=:0.0
python webdriver.py 2>&1 | adddate >> /home/user/log

我怀疑问题出在python代码中,因为它从命令行运行时效果很好。 cronjob属于能够从命令行运行脚本的同一用户。 python代码中的所有导入似乎都运行正常。

修改: 我正在向下滚动页面,当您向下滚动页面时,javascript会加载内容:

browser = webdriver.Firefox()
--
--
keep_scrolling = None
while keep_scrolling is None:
            try:
                keep_scrolling = browser.find_element_by_class_name('name_of_the_desired_class')
            except:
                browser.execute_script("window.scrollTo(0, document.body.scrollHeight);")

它向下滚动页面,当它找到类名时,它会冻结......也就是说,当脚本由cron运行时(但是从命令行运行时效果很好)。

0 个答案:

没有答案