我有一些脚本(AutoIt)浏览YouTube以获取热门视频列表等。它不涉及鼠标点击(只是击键)。该脚本需要很长时间才能完成,在此期间我无法使用我的 PC(它需要激活窗口才能在其上工作)。
对此我能做些什么吗?这些脚本可以从服务器或类似的东西运行吗?
我遇到了类似的问题:必须在Windows服务器上使用AutoIt运行自动化,并且整个事情必须是无头的。使用远程桌面根本不起作用,因为那时我必须始终保持客户端打开并最大化。
简短的解决方案:在Windows服务器中安装VNC服务器,从另一台计算机打开客户端,登录并关闭客户端。由于 AutoIt 脚本是由 Jenkins 作业启动的,在关闭客户端之前,必须通过 Web 界面启动 Jenkins 小程序。
顺便说一下,我从这篇文章中得到了这个想法:如何运行远程无头 GUI 自动化。
正如Johannes所说,AutoIt可能不适合(同样是AutoHotkey),但你可以查看其他语言存在的许多GUI和Web测试框架。使用其中一些,您可以运行"无头"浏览器(一种像浏览器一样导航网络但没有可见窗口的程序);或者,您可以在虚拟显示器(如 Xvfb X11 服务器)上运行标准浏览器。如果服务器(或它将要运行的任何地方)运行类Unix操作系统,这将是最简单的,但Windows也可能是可能的。
Selenium Webdriver 似乎是编写脚本和测试实际浏览器的非常流行的选择。它原生是Java,但有Ruby等语言的绑定。它还可以连接到名为 HtmlUnit 的东西,这也是 Java;这是更流行的无头浏览器之一。另一个(相对较新的)是phantom.js,它在Javascript中,但(再次)具有其他语言的绑定。
据我所知,除非用户帐户登录,否则这将不起作用。您可以尝试查看是否可以将其转换为 exe 并将其作为服务运行,但即便如此,我认为这行不通。如果您发现了,请告诉我!
您可以:
隐藏你的窗口(SetWindowState @SW_HIDE)或类似的东西...并使用控件单击(如果它们是原始控件!
或
隐藏窗口并使用发送控件
或
使用发送保持活动
或
使用像 ie.au3 这样的 OLEObjects 进行自动化。
祝你好运