Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带有Selenium Python脚本的Cron SyntaxError_Python_Selenium_Cron - Fatal编程技术网

带有Selenium Python脚本的Cron SyntaxError

带有Selenium Python脚本的Cron SyntaxError,python,selenium,cron,Python,Selenium,Cron,我是一个试图编写一个小型Python脚本的初学者,我将通过Cron运行该脚本,但是我从Cron输出日志中得到一个关于该程序的语法错误,尽管该脚本在终端运行时运行良好 File "/home/pi/Selenium.py", line 19 clickinput = driver.find_element_by_link_text(f"{date}- File")

我是一个试图编写一个小型Python脚本的初学者,我将通过Cron运行该脚本,但是我从Cron输出日志中得到一个关于该程序的语法错误,尽管该脚本在终端运行时运行良好

  File "/home/pi/Selenium.py", line 19
    clickinput = driver.find_element_by_link_text(f"{date}- File")
                                                                ^
SyntaxError: invalid syntax
我试图查找如何执行此操作,一个有类似问题的人将Cron改为作为Bash而不是sh运行,但是当我将SHELL=/bin/Bash添加到Cron文件时,什么都没有发生,我得到了相同的错误。此外,当我将f字符串更改为非f字符串时,将抛出一个“selenium module not found”错误

任何帮助找出错误原因的人都将不胜感激

Cron命令:

PATH = /home/pi/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/s$
SHELL = /bin/bash
20 18 * * * /home/pi/Selenium.py > /home/pi/Desktop/backdown.log 2>&1
20 18 * * * env > /home/pi/Desktop/env.output 2>&1
这是我的Python脚本(减去私有信息)


(这是我第一次发帖,如果不好的话很抱歉)

我猜
cron
下的
env
找到了一个不支持
f“string”
语法的旧Python。您是否可以使用
/usr/bin/env python--version>>output 2>&1
添加一个单独的cron作业,并检查它写入文件的内容?但是,如果没有额外的攻击,从
cron
运行图形程序将无法工作。Selenium(没有像Xvfb这样的东西)需要访问
显示器
,如果没有运行图形桌面,显示器当然不存在。@tripleee我应该试着以无头方式运行它吗?输出日志显示的是2.7.16,我想它不支持f-string?是的,f-string只在相对较新的Python 3版本中可用。也许可以试试
env python3
?是的,如果你不希望随时打开一个实时图形桌面,headless将是一个不错的选择(即使你这样做了,可能也是个好主意,因为我想它可能会干扰交互使用)。
#!/usr/bin/env python

import time
from datetime import datetime
from selenium import webdriver
driver = webdriver.Chrome("/usr/lib/chromium-browser/chromedriver")
driver.get("website");

searchinput = driver.find_element_by_name('mail')
searchinput.send_keys("email")
searchinput = driver.find_element_by_name("pass")
searchinput.send_keys("password")
searchinput.submit()

date = datetime.today().strftime("%m/%d")
if date.find("0") == 0:
    date = date.lstrip("0")
    
clickinput = driver.find_element_by_link_text(f"{date}- File")
clickinput.click()