一、下载安装AutoIT

  • 下载并安装AutoIT,下载链接:https://www.autoitscript.com/site/autoit/
  • AutoIT安装成功后,可以在开始菜单下看到AutoIT的所有工具,如下图所示: 
  • 其中分为几类,AutoIT Window Info用来识别Windows控件,根据识别的控件信息编写脚本;Complie Script to .exe,用来将利用AutoIt编写的脚本,编译成可执行文件;Run Script 用来执行AutoIT的脚本信息;SciTE Script Editor用来编写AutoIt脚本。

接下来就是利用以上四种工具,来编写AutoIT脚本,然后编译成可执行文件

二、利用AutoIT编写脚本

  • (1)  AutoIt Window Info

打开此工具,利用此工具来识别Windows控件信息,如输入框、按钮等。

此工具打开的界面显示:

用鼠标拖住工具上的Finder Tool的图标(即图中蓝色圈圈部分)到要识别的控件上,控件的唯一标识信息会显示在工具的左侧部分(图中红框标出的部分)。

从显示的结果得知,此控件的Title=“打开”,Class为Button,Instance=1。我们就是利用控件的这些信息,定位控件,编写脚本。

  • (2) SciTE Script Editor

根据以上所识别的空间信息,利用此编辑器,利用此软件根据AutoIT的语法编写脚本。

附实现文件上传需要的几个方法:

ControlFocus ( "窗口标题", "窗口文本", 控件ID)   设置输入焦点到指定窗口的某个控件上

WinWait ( "窗口标题" [, "窗口文本" [, 超时时间]] )  暂停脚本的执行直至指定窗口存在(出现)为止

ControlSetText ( "窗口标题", "窗口文本", 控件ID, "新文本" )   修改指定控件的文本

Sleep ( 延迟 )   使脚本暂停指定时间段

ControlClick ( "窗口标题", "窗口文本", 控件ID [, 按钮] [, 点击次数]] )   向指定控件发送鼠标点击命令

其中,title即AutoIt Window Info识别出的Title字段,controlID即AutoIt Window Info识别出的Class和Instance的拼接,如上图拼接后的结果应为:Button1

实例:

文本编辑

ControlFocus("文件上传", "", "Edit1")
WinWait("[CLASS:#32770]", "", )
ControlSetText("文件上传" ,"", "Edit1", "E:\1.jpg")
Sleep()
ControlClick("文件上传", "","Button1");

AutoIT脚本编写完成后,可以通过菜单栏“Tools”-->“Go” 运行一下脚本。注意,运行的时候,上传窗口需处于打开状态。

三、AutoIT脚本编译成可执行文件

脚本编辑运行无误后,将其保存。然后打开Complie Script to .exe工具,将保存的脚本编译成exe可执行文件。

点击“Browse”选择保存的脚本文件,点击“Convert”将其生成exe文件。

至此,利用AutoIT实现图片上传的流程结束。

四. 然后添加到自动化脚本中:

driver.find_element_by_css_selector('.file-input-wrapper.btn.btn-default').click()
os.system('"d:/upfile.exe"')

五、autoit参数化

在传递命令行参数到AutoIt脚本中的时候,AutoIt会自动初始化一个特殊的数组 $CmdLine。
    下面这些可以在AutoIt脚本中直接使用:
    $CmdLine[0] ;参数的数量
    $CmdLine[1] ;第一个参数 (脚本名称后面)
    $CmdLine[2] ;第二个参数

所以,将代码改成:

ControlFocus("文件上传","","Edit1");
WinWait("[CLASS:#32770]","",5);
ControlSetText("文件上传","","Edit1",$CmdLine[0]);
Sleep(2000);
Send("{ENTER}")
Sleep(2000);

  

(2)自动化代码改成:

Runtime.getRuntime().exe("d:/upfile.exe  file" );

os.system('"d:/upfile.exe file"')

  

selenium 用autoIT上传下载文件的更多相关文章

  1. rz和sz上传下载文件工具lrzsz

    ######################### rz和sz上传下载文件工具lrzsz ####################################################### ...

  2. linux上很方便的上传下载文件工具rz和sz

    linux上很方便的上传下载文件工具rz和sz(本文适合linux入门的朋友) ##########################################################&l ...

  3. shell通过ftp实现上传/下载文件

    直接代码,shell文件名为testFtptool.sh: #!/bin/bash ########################################################## ...

  4. SFTP远程连接服务器上传下载文件-qt4.8.0-vs2010编译器-项目实例

    本项目仅测试远程连接服务器,支持上传,下载文件,更多功能开发请看API自行开发. 环境:win7系统,Qt4.8.0版本,vs2010编译器 qt4.8.0-vs2010编译器项目实例下载地址:CSD ...

  5. linux下常用FTP命令 上传下载文件【转】

    1. 连接ftp服务器 格式:ftp [hostname| ip-address]a)在linux命令行下输入: ftp 192.168.1.1 b)服务器询问你用户名和密码,分别输入用户名和相应密码 ...

  6. C#实现http协议支持上传下载文件的GET、POST请求

    C#实现http协议支持上传下载文件的GET.POST请求using System; using System.Collections.Generic; using System.Text; usin ...

  7. HttpClient上传下载文件

    HttpClient上传下载文件 java HttpClient Maven依赖 <dependency> <groupId>org.apache.httpcomponents ...

  8. 初级版python登录验证,上传下载文件加MD5文件校验

    服务器端程序 import socket import json import struct import hashlib import os def md5_code(usr, pwd): ret ...

  9. 如何利用京东云的对象存储(OSS)上传下载文件

    作者:刘冀 在公有云厂商里都有对象存储,京东云也不例外,而且也兼容S3的标准因此可以利用相关的工具去上传下载文件,本文主要记录一下利用CloudBerry Explorer for Amazon S3 ...

随机推荐

  1. 【转载】HTTP和SOAP完全就是两个不同的协议

    http:是一个客户端和服务器端请求和应答的标准(TCP). http协议其目的是为了提供一种发布和接收htttp页面的方法 http协议的客户端与服务器的交互:由HTTP客户端发起一个请求,建立一个 ...

  2. 测试xxxxxxxx

    测试sdfs xxxxxxxbgssdfsdf f sd=JS-demp.zip f /**  * @author John Smith <john.smith@example.com>  ...

  3. 腾讯云 net.core

    搭建 .NET Core 开发环境 安装 .Net Core 执行代码 任务时间:时间未知 .NET Core 的官方文档很详细,本实验带你建立一个.NET Core 1.1的Web运行环境,更多内容 ...

  4. DataUml Design 教程4-代码生成

            DataUml Design 生成代码非常灵活,它是基于模板形式生成代码,如果不懂类结构的话写模型就比较困难了.这里我只讲解下如何生成代码,代码模板规则下一节将介绍.        1 ...

  5. 做自己生活的导演:华为CameraKit为你加持大师光环

    今年最流行的娱乐方式,无疑是短视频,抖音等短视频平台,越来越多的消费者沉浸其中.除了看别人拍的短视频用以丰富生活乐趣之外,也有不少跃跃欲试的消费者加入到短视频拍摄的行列中.随着拍摄者的增加,对拍摄设备 ...

  6. dp解Codeforces Round #260 (Div. 2)C. Boredom

    #include<iostream> #include<map> #include<string> #include<cstring> #include ...

  7. eclipse 打开的时候弹出 'Building workspace' has encountered a problem. Errors occurred during

    Eclipse 里面project->Build Automatically上的对勾去掉

  8. 使用nginx cache缓存网站数据实践

    Nginx本身就有缓存功能,能够缓存静态对象,比如图片.CSS.JS等内容直接缓存到本地,下次访问相同对象时,直接从缓存即可,无需访问后端静态服务器以及存储存储服务器,可以替代squid功能. 1   ...

  9. SlidingMenu官方实例分析2——BaseActivity

    本文从BaseActivity说起,因为其他功能页面都继承了这个类. 这里继承了Sliding中的SlidingFragmentActivity,其实也可以继承SlidingActivity, 但是现 ...

  10. OpenCV学习笔记二十:opencv_ts模块

    一,简介: OpenCV测试库,用于单元测试.