Selenium 自动化问题:脚本可以手动运行,但在任务计划程序中失败

问题描述 投票:0回答:1

我在使用 Python Selenium 进行 Web 自动化时遇到了一个令人困惑的问题。当我手动执行该脚本时,该脚本运行顺利,但是当我使用任务计划程序安排它时,它始终无法找到网页上的特定元素。以下是我的设置的详细信息:

Chrome 驱动程序版本:115.0.5790.170 Chrome浏览器版本:115.0.5790.171 Python版本:3.9.17 Selenium 版本:4.11.2 // 也尝试过 4.9.1 操作系统:Windows Server 2019,版本 1809 执行模式:任务调度 Chrome启动模式:具有特定用户数据目录的调试模式 WebDriverWait:已实现足够的等待时间

脚本成功建立与 Chrome 实例的连接,并且 Chrome 选项卡在整个过程中保持打开和活动状态。尽管实现 WebDriverWait 并具有足够的等待时间,但脚本在计划执行期间通常无法找到网页上的某些元素。

一些要点:

  • 仅当通过任务调度程序调度脚本时才会出现此问题;手动执行效果很好。
  • 我们已确保 Chrome 驱动程序版本与 Chrome 浏览器版本匹配。
  • Chrome 选项卡在执行期间保持活动且可见。
  • 使用具有适当超时间隔的 WebDriverWait 来定位元素。
  • 我和我的队友在试图找出这个问题的根本原因时不知所措。我们怀疑手动执行和通过任务调度程序执行之间可能存在一些潜在差异,从而导致了这种行为。

是否有人遇到过类似的问题或了解可能导致这种差异的原因?任何建议、指导或故障排除步骤将不胜感激。我们渴望解决这个问题,并确保即使在使用任务调度程序时也能实现一致的自动化。

python selenium-webdriver scheduled-tasks windows-server-2019
1个回答
0
投票

由于问题是在使用任务计划程序运行脚本时出现的,因此问题可能与应用程序运行的 do 目录有关。

我建议你检查一下 或执行以下操作:

  • 检查计划任务的“启动位置”配置(脚本运行的位置)
  • 检查您的代码是否使用相对目录(如果您手动运行,它可能会使用项目目录作为基本目录,但使用计划任务,它可能会使用不同位置的基本目录)
  • 添加调试日志以检查任务正在运行的位置
© www.soinside.com 2019 - 2024. All rights reserved.