介绍
我是一个项目团队的一员,该团队使用旧的 GForge 系统(社区版 v5.6.1)来托管我们的源代码并提供一些进一步的服务。一项内置服务是上传和下载功能。因此用户可以很容易地获得生成的应用程序版本。为了提供这个可下载的版本,我们作为开发人员必须使用浏览器(例如 IE 或 FF)导航到相应的 GForge 页面,然后勾选一些按钮,填写一些文本框,最后点击“上传”按钮,打开一个文件对话框以指定要上传到 GForge 下载区域的任何文件。对于下载,过程类似。此外,有时会出现一个单独的 WEB 页面来请求会话登录。
现在,作为开发人员,我们正处于“火爆阶段”,需要提供高频率的可下载版本,上述过程对于发布的重要部分来说太容易出错,而且速度太慢。除此之外,屏幕前总是需要一个真实的人来点击。
问题
我们如何能够以编程方式将生成的软件版本上传和下载到 GForge 的下载区域,同时克服第一手的密码页面(当然使用有效的用户帐户)?
到目前为止我们所做的尝试
使用 Python 脚本。Python 提供了非常有用的模块,如“urllib”、“urllib2”和“requests”,任何 HTTP 访问(即使是具有会话密码保护的访问)都应该是可管理的。经过几个小时的尝试,GForge 系统只返回密码请求页面。没有任何有趣的文件。甚至远离上传任何东西。
使用 AutoIt 脚本。AutoIt 可以自动化鼠标移动和键盘按下以及直接访问屏幕上的可见元素。它提供了一个“窗口信息”应用程序来识别任何窗口元素。但是,例如 WEB 页面 (HTML)中的按钮和文本字段无法识别。所以我们不知道如何正确识别 GForge 的密码文本字段以便将鼠标移动到那里,并输入必要的文本。从那里继续模仿坐在屏幕前的人。
有人对解决我们的问题有一些经验吗?