zoukankan      html  css  js  c++  java
  • robotframework-autoitlibrary离线安装

    由于AutoItLibrary需要依赖pywin32库。所以要使用AutoItLibrary必须要先安装好pywin32

    1、pywin32下载地址安装:http://sourceforge.net/projects/pywin32/files/pywin32/

    AutoItLibrary下载地址:http://code.google.com/p/robotframework-autoitlibrary/(注意:如果使用命令安装导包不成功就直接下载并去到对应setup.py目录执行python setup.py install进行安装 )
    2、64位的机器:除了安装上面2个之外,还不得不再安装一个AutoItV3(最新的官网下载地址:http://www.autoitscript.com/site/autoit-news/autoit-v3-3-10-0-released/ ,如果以后有更新请从官网首页自行下载)。一般情况下装完这个就能用了。

     
    今天需要在win7 64位系统下安装autoitlibrary库,起初安装好了robotframework框架,导入selenium2lib也没有问题,之后开始安装autoitlibrary库。
    从下载地址:http://download.csdn.net/detail/liuheng123456/6236097 中下载AutoItLibrary-1.1_x64的安装压缩包。
    解压压缩包后,在dos命令下,进入到解压的AutoItLibrary目录,如:把 AutoItLibrary-1.1_x64解压到E盘下,就执行cd E:AutoItLibrary-1.1_x64。
    执行python setup.py install 安装AutoItLibrary到python27的lib库下面。
    利用robotframework导入AutoItLibrary库,始终展现为错误信息,无法正常导入。
    上网查询资料发现,win7系统下仍旧需要安装autoit程序,robotframework才能正常导入AutoItLibrary库。
    查找autoit下载地址:
    https://www.autoitscript.com/site/autoit/downloads/
    下载auto_it_3.3.12.exe最新版本安装。
     
    安装完成后仍旧不能正常导入AutoItLibrary库,郁闷中,再次查找资料,发现需要重新注册一下autoit的AutoItX3.dll文件才行。
    利用cmd进入AutoItX3.dll文件所在路径,运行系统注销和系统注册命令:
    c:Python27Libsite-packagesAutoItLibrarylib>regsvr32 /u AutoItX3.dll
    c:Python27Libsite-packagesAutoItLibrarylib>regsvr32 /s AutoItX3.dll
     
    运行成功后,重新利用robotframework导入AutoItLibrary库,成功导入。

    在安装 AutoItLibrary 用于Robot Framework 时遇到过几个问题,记录一下解决方法。

    前提:必须使用管理员权限运行cmd。

    一、报错信息

    这其中有两个错误要解决:

    第一个报错

    Don't think we need to unregister the old one...

    这是因为检测到:在python的目录下已有该 lib

    解决方法:
    如我的目录是D:Program Files (x86)Python27Libsite-packagesAutoItLibrary,那就需要把这个目录下的文件清空。

    第二个报错

    Traceback (most recent call last):
    File "setup.py", line 70, in <module>
    subprocess.check_call(cmd, shell=True)
    File "D:Program Files (x86)Python27libsubprocess.py", line 186, in check_call
    raise CalledProcessError(retcode, cmd)
    subprocess.CalledProcessError: Command '%SYSTEMROOT%system32 egsvr32.exe /S D:Program Files (x86)
    Python27Libsite-packagesAutoItLibrarylibAutoItX3.dll' returned non-zero exit status 3

    关于subprocess.check_call这个函数看了下这篇文章:
    https://blog.csdn.net/liushuibufuqin/article/details/78892831

    解决方法(忘了当时在哪里查到的了,方法可行,但是未必科学):

    1、到下载下来的AutoItLibrary-1.1文件夹下,打开setup.py文件;
    2、注释掉第70行(行数可能有偏差)的subprocess.check_call(cmd, shell=True);
    3、注释掉第81行(行数可能有偏差)的subprocess.check_call(cmd)

    二、终极原因

    以上问题解决后,AutoItLibray 总算安装成功,但是却又发现了更诡异的事情:

    安装的库并不完整!!!

    在Robot Framework 中导入AutoItLibray 准备使用了,却发现使用 click button 之类的关键字不生效(颜色都没标识)。于是,使用 F5 查看关键字,确实不完整,有 open 、close 之类的关键字,却没有 click 等等。

    检查了:
    1、AutoItLibray 确实已导入成功,重新导了N次都还是原状;
    2、pywin32 与 python 版本确实是对应的,当时安装,都选择了32位,AutoIt 选择的也是x86版本;

    反复查找相关文档,仍无果,所以只能决定重新安装,而且选择64位的python(电脑本就是64位,只是当时怕 python 版本与 pywin32 不兼容才选择安装32位的 python)。另外,忘了在哪处看到安装目录不要有空格,联想到当时 python 安装在Program Files (x86)目录下,可能也有这个原因,所以在重装 python 时选择了没有空格的目录。重装后,以上两个问题好像并没有再出现(不太记得了),AutoItLibray 也终于能正常使用。

    所以以上发现的问题很有可能都是 python 的安装本就不正确而导致。因此,要一定注意 python 的版本与安装目录。

  • 相关阅读:
    【.Net--资料】
    【系统Configmachine.config与自己的应用程序的App.config/Web.Config配置节点重复】解决方法
    【AutoMapper】实体类间自动实现映射关系,及其转换。
    【EntityFramwork--处理数据并发问题】
    【IOC--Common Service Locator】不依赖于某个具体的IoC
    Android学习——碎片Fragment的使用
    Android学习——利用RecyclerView编写聊天界面
    Android学习——控件ListView的使用
    Android学习——LinearLayout布局实现居中、左对齐、右对齐
    Android学习——Button填充颜色及实现圆角
  • 原文地址:https://www.cnblogs.com/xyao1/p/11477349.html
Copyright © 2011-2022 走看看