当我 运行 来自 Scheduled Tasks 的 Selenium scraper 时,我的屏幕在哪里?

Where's my screen when I'm running a Selenium scraper from Scheduled Tasks?

上下文:蔚蓝; C#; .NET 4.5.2;硒 2.53

我是 运行 一个用 C# 编写的基于 Selenium 的爬虫,来自计划任务。 ChromeDriver.exe 静默运行并静默启动 Chrome.exe:既不与登录用户的屏幕交互。

有人要求我制作 C# 应用程序、Chrome驱动程序和 Chrome 之间交互的视频。事实证明比我想象的要难一些。

我已经尝试过 Screencastify,因为它是 运行 作为 Chrome 扩展,所以它会 "see" 屏幕并因此能够记录它。然而,Screencastify 被证明很难驱动,尤其是因为我必须向它发送击键而不是能够通过 API 来控制它。

我注意到 Screencastify 确实有一个 API 但使用它的前提是您已经将它安装在您自己的站点中。也就是说,它不是爬虫友好的。

还有其他屏幕捕获工具,例如 ScreenRecorder。我完全不确定它是否会在这种情况下工作,没有这样的屏幕(除非用刮板启动它。)

这种情况是Chrome自己在做一些事情而忽略了输出设备的不足?也就是说,它是否运行处于一种伪无头浏览器状态?

根据定义制作预定抓取的视频是不可能的吗?

您必须将任务设置为仅在用户登录时 运行 否则它将开始隐藏并且您将无法看到它。还要确保未选中隐藏。您可以将默认用户设置为在机器启动时登录,然后在该用户登录时启动任务。这样所有内容都将在桌面上可见。