官网的介绍是:
AutoItLibrary is a Python keyword library that extends Robot Framework by providing keywords based on the COM interface to AutoIt, a freeware tool for automating the Windows GUI.
实际上 AutoItLibrary 是一个 Robotframework 的测试库,用来进行 Windows 的 GUI 的自动化测试。它的底层是基于 AutoIt 这个工具。
AutoIt 具体介绍请参考:https://www.autoitscript.com/site/
最近经常发现有同学在安装 AutoItLibrary 的时候出现报错,特别是 Windows7 下面,如图:
从描述看,注意这里第二行提示 “Don't think we need to unregister the old one...”,那么看起来是因为之前已经安装过一个了?我们来看一下安装时候的源码是怎么样的:
大概在第五、六行这里(忽略注释来算行数),有一段代码:
if os.path.isfile(os.path.join(get_python_lib(), "AutoItLibrary/lib/AutoItX3.dll")) :
print "Don't think we need to unregister the old one..."
我们看一下这段代码,get_python_lib() 就是获取到 python 的 lib/site-packages 的目录,后面是 AutoItLibrary 的一个 AutoItX3.dll,最终就是判断在 site-packages 目录下的 AutoItLibrary/lib 下是否存在 AutoItX3.dll 文件,如果存在那么就会提示我们刚才看到的那一句话。
所以第一个想到的是删掉那个文件,但是删掉这个文件后,其实还是报错的。
报错信息一样,就少了那一句。所以看起来根本问题还是在最后那句 “returned non-zero exit status 5”
在网上搜了很多地方,最后看到一个比较靠谱的地方,解决方案是这么说的:
Open command shell as Administrator. Click on “Start”, type “cmd”, right click > “Run as Administrator“).
也就是要用管理员来启动命令行,点击开始,输入 cmd,然后在弹出的程序上点击右键,选择以管理员身份运行。
然后在这个 cmd 命令行中进入 AutoItLibrary 的安装目录,重新运行 python setup.py install 来进行安装,问题解决。
以上是我找到这个问题解决方案的过程,总而言之就是先根据错误信息找到问题原因或出处,然后判断什么情况下导致这个错误信息提示出来,有可能有多个错误,一个个排除掉,直到最后一个解决。要学会顺藤摸瓜,一点点的找下去,虽然可能会慢一些,但是最终解决问题之后,你会对这个问题理解更深刻。
此外还要学会科学上网会搜索,会科学上网大家都懂的,会搜索怎么解释呢,我前面说的搜索了很多地方,其实都是在谷歌上搜索的,但是并没有直接找到结果,最后我是在 stackoverflow 里专门搜索了一下,第一次搜索 “returned non-zero exit status 5”,发现有很多不相关的内容,然后我搜索 “returned non-zero exit status 5 autoit”,结果没有搜到,然后我去掉了 5 再搜索 “returned non-zero exit status autoit”,就只有一个结果,刚好在里面找到了这个答案。实际上谷歌第一页最后一个连接也算找到了结果,只是没有说的那么明确(地址见:https://code.google.com/p/robotframework-autoitlibrary/issues/detail?id=15)
2015Teambition 深圳敏捷之旅即将在2016年1月10日在深圳举办,现在报名进行中
报名地址:http://event.3188.la/238415971