涉及Selenium的Python脚本在从任务调度程序调用时表现不同,但在从spyder或命令行运行时按预期工作

l0oc07j2  于 2022-12-02  发布在  Python
关注(0)|答案(1)|浏览(100)

我已经创建了一个使用selenium和chromedriver的python程序。我无法以任何方式从TaskScheduler成功运行此脚本(或任何其他使用selenium的脚本)。但是,当我从Spyder运行它时,它运行得非常好,并且完成了我需要的所有任务。当我通过命令行调用它时,它在登录时也运行得非常好。

**程序正常工作时会做什么:**启动chrome浏览器。自动点击和页面请求。下载文件。-处理与此帖子无关的文件-
**从TaskScheduler调用时程序会做什么:**启动chrome,但它不出现(没有可见的浏览器,但任务管理器识别chromedriver和chrome被踢出,并在脚本被调用后持续运行)我所有的点击都是通过完整的xpath在元素上进行的,所以我想也许不可见的浏览器不会破坏它,但它确实失败了,从未获取文件下载。

可能相关的信息:我的chromedriver不在路径上,而是通过driver = webdriver.Chrome(r 'F:\chromedriver.exe')设置的,当通过Spyder或命令行运行时,它绝对可以正常工作。
工作排程器输入动作:启动程序程序/脚本:添加参数(可选):“C:\用户[我的编辑名称]. spyder-py 3[客户的编辑名称][编辑任务].py”

我所知道的:Python script not running in task scheduler中建议的工作目录没有修复任何内容。

从命令行C:\ProgramData\Anaconda3\python.exe C:\Users[我的编辑名称]. spyder-py 3[客户的编辑名称][编辑任务].py运行会产生预期的准确结果
我做过的其他程序都没有遇到过这种问题,我有几十个程序通过TaskScheduler运行,它们的功能与Selenium / Chromedriver以外的所有组件都类似。
实际上,我有两个使用Selenium的脚本,它们在从命令行运行时都遇到了相同的问题。它们的任务或多或少是相同的,因此解决一个应该可以解决另一个,但应该注意的是,这个问题不是单个脚本所独有的,而是使用Selenium并从任务调度程序运行的脚本所独有的
我也看到了Selenium - Using Windows Task Scheduler vs. command line,并试图看看是否有0票的单一响应可以帮助,但我不确定这个问题是否真的是相同的,因为它是为IE和java。

6l7fqoea

6l7fqoea1#

目前正在处理同样的问题,我的Python脚本和你的脚本做的几乎完全一样。我最初的解决方案是使用datetime变量和while True循环,然后为了方便起见切换到apscheduler。再次切换回解决方案,脚本完美地运行了。希望这能帮助其他人处理这个问题!

相关问题