对远程 WebDriver 服务器的 HTTP 请求在 60 秒后超时。仅在通过任务调度程序运行时发生

Posted

技术标签:

【中文标题】对远程 WebDriver 服务器的 HTTP 请求在 60 秒后超时。仅在通过任务调度程序运行时发生【英文标题】:The HTTP request to the remote WebDriver server timed out after 60 seconds. Happens only when running through the task scheduler 【发布时间】:2021-12-04 00:55:39 【问题描述】:

我正在对通过 Windows 服务器上的任务计划程序运行的 Selenium 脚本进行故障排除。它使用 3.0.1 版的 Selenium 模块(可在此处找到:https://www.powershellgallery.com/packages/Selenium/3.0.1)和 Edge 浏览器(带有 Chromium 的浏览器)在 PowerShell 中运行。

“对 URL [localhost] 的远程 WebDriver 服务器的 HTTP 请求在 60 秒后超时。”错误一直很持久,仅在通过任务计划程序运行时出现。通过 ISE 手动运行时,脚本运行良好。

另外需要注意的是,还有另一个脚本与有问题的脚本大致相同,尽管使用的 URL 略有不同(同一站点)。第二个脚本通过任务调度程序运行没有问题。他们正在执行相同的操作序列,这就是为什么我不完全确定为什么一个脚本会失败,而另一个脚本不会失败。

在查看其他面临相同问题的海报时,我没有找到合适的解决方案。非常感谢任何帮助!

【问题讨论】:

可能与本地主机冲突...驱动程序可能也会使用它。包括工作和不工作的 webdriver 初始化代码。 $Edge_Driver = Start-SeNewEdge 此行在工作脚本和非工作脚本之间没有变化。 您需要进行一些故障排除。尝试找出工作和非工作之间的区别。由于这仅在通过任务调度程序运行时才会发生,因此请务必检查运行脚本的服务/用户的权限。如果两者都相同,您可以检查 localhost 服务器的超时时间...这是向 webdriver 服务器发送命令的超时时间,或者从...接收数据返回... 例如,将非工作脚本中的“略有不同的 URL”放入工作脚本中。看看会不会破坏它。等等...控制每个变量...找出可能导致这种情况的差异。 一定要在这里控制时间......不同的脚本可能会因为它们运行的​​时间以及当时机器/服务器的其他情况而失败。 【参考方案1】:

我遇到了同样的问题。我尝试了各种代码更改,但唯一对我有用的步骤是更改任务计划程序中的安全选项。

任务(右键单击)> 属性 > 常规 > 从运行(无论用户是否登录)切换到仅在用户登录时运行。

我想这将是一个临时解决方案。如果我找到更好的解决方案,我会继续寻找和更新。

【讨论】:

它是这样工作的,但我们的政策不允许我们让用户保持登录状态。

以上是关于对远程 WebDriver 服务器的 HTTP 请求在 60 秒后超时。仅在通过任务调度程序运行时发生的主要内容,如果未能解决你的问题,请参考以下文章

Selenium Webdriver如何触发HTTP请求

利用向日葵, Webdriver, Autoit 实现远程办公自动化之 向网页中多个位置上传不同图片

在没有显示的 Linux 服务器上运行 Chrome WebDriver

python调用远程chromedriver.exeselenium抓包方法

远程 Selenium WebDriver 不响应 Cucumber 测试

无法创建新的远程会话 - Selenium webdriver