我有用于网页抓取的 Python 脚本。我使用 papermill 运行它,然后我创建了一个批处理文件,用于任务调度程序运行。在我的虚拟机更新之前,此工作流程运行良好。我可以成功手动运行它或“仅在用户登录时运行”,没有任何错误。
当选择无论用户是否登录都运行选项时,它只是挂在需要打开浏览器登录的步骤上,然后在 20-30 分钟后,它会给我如下超时会话错误:
SessionNotCreatedException: Message: session not created
from timeout: Timed out receiving message from renderer: 600.000
(Session info: chrome=93.0.4577.82)
我尝试过的事情:
- 我已选中“以最高权限运行”复选框
- 我已经检查了 chrome 版本,所有内容都是最新的
- 已添加“开始”选项
- 仅当网络连接可用时才启动“任何连接”
- 触发器已选中“已启用”选项
我的 .bat 文件如下所示:
@echo off
SET LOGFILE=C:\path\logs\log-%date%.txt
echo on
call :logit >>%LOGFILE%
exit /b 0
:logit
echo "Activate the anaconda prompt for the remaining commands."
echo "Note that the ProgramData folder is a hidden item."
call C:\path\Scripts\activate.bat
echo "Change directory at anaconda prompt to application location."
cd C:\path
echo "Run the Python application"
python papermill.py
echo "Use taskkill to end the geckodriver.exe task."
taskkill /im geckodriver.exe /f
exit
echo "Close the command prompt."
@timeout 6 >nul
请提出建议,因为我已经尝试过
答案1
我拥有最新的 chrome 版本 93.0.4577.82,几天后它又更新到 94。我的自动 selenium 脚本无法启动 chrome 浏览器,它只是在这一步挂起。
然后,我通过降级 Chrome 版本以及 Chrome 驱动程序版本解决了该问题。在 92.4515.107 版本中,任务计划程序与复选框“无论用户是否登录都运行”配合使用。这也意味着某些 chrome 版本与使用任务计划程序运行带有复选框“无论用户是否登录都运行”的作业不兼容。
我还通过更改虚拟机中 chrome 的名称来停止 chrome 的自动更新,以避免进一步的错误。
我从以下网址下载了相同版本的 Chrome 驱动程序这里