Autoit 使用

摘要:
这三个元素是:每个遍历的路径名、路径下的子目录列表和目录下的文件列表。

一、Autoit 上传文件、

1.常用语法

- WinActivate("title")         聚焦到指定活动窗口
 - ControlFocus ( "title", "窗口文本", controlID)   设置输入焦点到指定窗口的某个控件上;
 - WinWait ( "title" , "窗口文本" , 超时时间 )  暂停脚本的执行直至指定窗口存在(出现)为止;
 - ControlSetText ( "title", "窗口文本", controlID, "新文本" )   修改控件的文本,如选择文件
 - Sleep ( 延迟 )   使脚本暂停指定时间,单位是毫秒;
 - ControlClick ( "title", "窗口文本", 控件ID , 按钮 , 点击次数 )   向指定控件发送鼠标点击命令;

2.windows窗口定位

  a. 打开 AutoIt Window Info (x64),

Autoit 使用第1张

   b. 定位工具界面如下:

  Autoit 使用第2张

   c. 拖动finder tools到windows 窗口,可定位元素

   在autoit工具的control栏可查看,元素信息

  Autoit 使用第3张

 3  编写脚本

  打开SciTE Script Editor编写脚本

  Autoit 使用第4张

   

  WinActivate("打开")
  ControlSetText("打开","","Edit1","C:Userswang1Desktop	est.docx")
  Sleep(1000)
  ControlClick("打开","","Button1");

  编辑完后运行(菜单Tools --go),可看到文件上传成功

  注意需要先打开如下图的文件选择框,再运行脚本或exe文件,才能成功

  Autoit 使用第5张

4 将脚本导出为.exe文件

  a. 将编写好的脚本保存

  b.  右键脚本,选择 compile Script,即可生成exe文件

    Autoit 使用第6张

 二、文件上传的参数化

  可通过autoit的命令行参数,实现参数化

      aa.exe param1 “This is a string parameter”  666

    aa.exe: 生成的可执行autoit的exe文件

    param1 “This is a string parameter”  666: 传入三个参数,参数1: param1 ,参数2:“This is a string parameter”  ,参数3: 666

  注意:如果传入的参数有空格,则参数必须用双引号括起来

  aa.exe param1 “This is a string parameter”  666:

    $CmdLine[0] : 表示传入的参数的个数(不包括脚本文件名),本例中值为3
    $CmdLine[1] : 表示第 1 个参数,本例中表示 param1
    $CmdLine[2] : 表示第 2 个参数,本例中表示 “This is a string parameter”
    ...
    我们常用 $CmdLine[$CmdLine[0]] 来表示最后一个参数...

  除了$CmdLine之外,还有一个变量叫做 $CmdLineRaw,它保存着完整的未被拆分的命令行语句,对于上面这个例子
  $CmdLineRaw 等价于..aa.exe param1 “This is a string parameter”  666

  将以下脚本保存为exe文件,在cmd下执行该文件

 WinActivate("打开")
 ControlSetText("打开","","Edit1", $CmdLine[1])
 Sleep(500)
 ControlClick("打开","","Button1");

命令运行前:

Autoit 使用第7张

 

 命令运行后:

Autoit 使用第8张

 三 python 运行exe文件

    def upload_agreement_copy(self):
        """
        # 这是第二种,通过walk函数,返回root(路径),dirs(子目录),files(文件名)三个元组,本例中我们用walk来遍历
        返回值:函数返回一个元组,含有三个元素。这三个元素分别是:每次遍历的路径名、路径下子目录列表、目录下文件列表。

        # 先要遍历文件夹
        path = r'd:1'  # 定义路径,OS提供了两种遍历文件夹的办法
        # files1 = os.listdir(path)
        # # 这是第一种,会遍历路径下所有文件包括子文件夹,结果以列表给出,但仅仅能给出文件名/子文件名,无法对二者进行区分
        # # for file in files1:
        # #     print(os.path.join(path,file))
        files2 = os.walk(path)
        """
        file_path = self.sign_contracts.get_ini_value("sign_contracts_v4.ini", "basic","agreement_copy_file")
        css_agreement_copy = self.sign_contracts.get_ini_value("sign_contracts_v4.ini", "basic","agreement_copy")
        js_agreement_copy_browse = self.sign_contracts.get_ini_value("sign_contracts_v4.ini", "basic","js_agreement_copy_browse")

        doc_list = []
        for root, dirs, files in os.walk(file_path):
            for doc in files:
                if doc.endswith(".docx") or doc.endswith(".doc"):
                    doc_file_path = os.path.join(root, doc)
                    doc_list.append(doc_file_path)
        choice = random.choice(doc_list)
        self.driver.click(css_agreement_copy)
        self.driver.executeJS(js_agreement_copy_browse)
        time.sleep(1.5)

        #方式一:全路径运行
        # os.system(r"E:HPPycharmProjectsJDMerchantconfigupload_file.exe %s"%choice)

        #方式二
        exe_file = self.sign_contracts_v4_config.get_file_path("upload_file.exe")
        #只有这种试才能运行成功
        os.system("%s %s"%(exe_file,choice))
        log.info("输入的agreement_copy值为:" + choice)
        time.sleep(self.time_wait_upload)

 

  

  

    

免责声明:文章转载自《Autoit 使用》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇react工程目录简介kindeditor在线编辑器的使用心得下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

如何记录selenium自动化测试过程中接口的调用信息

注: 以下内容引自https://www.cnblogs.com/hhudaqiang/p/6635494.html 上一篇博客,我写了python自动化框架的一些知识和粗浅的看法,在上一篇中我也给自己提出一个需求:如果记录在测试过程中接口的调用情况?提出这个需求,我觉得是有意义的。你在测试过程中肯定会遇到一些莫名其妙的问题,比如:web某个页面一直在刷进...

AutoIt实现文件上传

AutoIt目前最新是v3版本,这是一个使用类似BASIC脚本语言的免费软件,它设计用于Windows GUI(图形用户界面)中进行自动化操作。它利用模拟键盘按键,鼠标移动和窗口/控件的组合来实现自动化任务。  官方网站:https://www.autoitscript.com/site/ 从网站上下载AutoIt并安装,安装完成在菜单中会看到图4.13的...

Autoit安装及启动

1、Autoit下载:   官网下载地址:https://www.autoitscript.com/site/autoit/downloads/   提供百度网盘下载:https://pan.baidu.com/s/17l5fOlz_ZHjoHxnQwiQBYA(如果链接失效,请在评论中索要,会在评论中再次给出) 2、Autoit安装:   安装教程一般百...

autoit 用命令启动控制面板和使用RUNDLL32大全

用命令启动控制面板和使用RUNDLL32大全 有二种方法可以运行控制面板模块cpl 第一种借助RUNDLL或RUNDLL32运行rundll32.exe shell32.dll,Control_RunDLL程序就能调出控制面板窗口语法: Run("RUNDLL32 SHELL32.DLL,Control_RunDLL filename.CPL,@n,t")...