AutoIt是一个使用类似BASIC脚本语言的免费软件,被设计用来进行Windows GUI的自动化测试。它利用模拟键盘按键,鼠标移动和窗口/控件的组合来实现自动化任务。

此次小编介绍的是利用AutoIT编写合适的脚本,然后将脚本编译成可执行文件,在自动化实现时,直接调用此脚本实现文件上传。

案例:从编写好的upfile.html页面完成文件上传操作。

upfile.html

<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
<title>upload_file</title>
<link href="http://cdn.bootcss.com/bootstrap/3.3.0/css/bootstrap.min.css" rel="stylesheet"/>
</head>
<body>
<div class="row-fluid">
<div class="span6 well">
<h3>upload_file</h3>
<input type ="file" name ="file" />
</div>
</div>
</body>
<script src="http://cdn.bootstraps.com/bootstrap/3.3.0/css/bootstrap.min.js"></script>
</html>

1.AutoIt下载安装

官方网址:https://www.autoitscript.com/site/

从网站上下载并安装完成后,可以看到如图所示:

AutoIt v3菜单介绍:

AutoIt Windows Info:用于识别Windows控件信息

Compile Script to.exe:用于将AutoIt生成exe执行文件

Run Script:用于执行AutoIt脚本

SciTE ScriptEditor:用于编写AutoIt脚本

2.浏览器打开upfile.html,点击“选择文件”按钮,然后打开AutoIt Windows Info工具,鼠标单击Finder Tool,看到一个类似小风扇的图标,按住鼠标左键,拖动到要识别的控件上(文件名输入框以及“打开按钮”)

我们可以通过AutoIt Windows Info获得以下信息:

窗口title:“文件上传”,标题class:#32770

文件名输入框class:“Edit”,Instance:“1”,ClassnameNN:“Edit1”

打开按钮class:“Button”,Instance:“1”,ClassnameNN:“Button1”

3.根据AutoIt Windows Info的信息,打开SciTE Script Editor编辑器,编写AutoIt脚本

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

脚本附注;

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

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

ControlSetText ( "title", "窗口文本", controlID, "新文本" ):   修改指定控件的文本

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

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

编写好脚本后,可以运行看看,通过“Tools”-->“Go”,或者“F5”。(注意,运行时,文件上传窗口必须打开)

4.保存脚本为“upfile.au3”文件,然后打开Compile Script to.exe工具,将其生成exe可执行文件。

点击“Browse”,选择“upfile.au3”文件,再点击“Convert”按钮,提示“Completed”即生成成功。

5.打开Pychorm,编辑Python代码

from selenium import webdriver
from time import sleep
import os driver = webdriver.Firefox() # 打开上传功能页面
driver.get(r'E:\python_script\Webdriver\upfile.html') # 单击打开上传窗口
driver.find_element_by_name("file").click()
# 调用upfile.exe程序
os.system(r"E:\python_script\Webdriver\upfile.exe")
sleep(3) driver.quit()

运行脚本,就可以实现文件上传。

Python+selenium(Autolt实现上传)的更多相关文章

  1. python+selenium:解决上传文件<input type='file'>标签属性被css的visibility隐藏导致无法定位元素的问题

    要想上传文件,需要找到在HTML中<input type="file" />这个标签,有它就可以利用send_keys上传文件,不过这里的<input>元素 ...

  2. 【python+selenium自动化】基于Autolt实现上传

    在UI自动化过程中,总会遇到文件上传的操作,一般的,标签为input,可以直接使用sendkeys 如果他仅仅是一个button,那则无法直接sendkeys,则需要用到autoIT这个工具 基于Au ...

  3. selenium+python自动化77-autoit文件上传

    前言 关于非input文件上传,点上传按钮后,这个弹出的windows的控件了,已经跳出三界之外了,不属于selenium的管辖范围(selenium不是万能的,只能操作web上元素).autoit工 ...

  4. selenium+python自动化77-autoit文件上传【转载】

    前言 关于非input文件上传,点上传按钮后,这个弹出的windows的控件了,已经跳出三界之外了,不属于selenium的管辖范围(selenium不是万能的,只能操作web上元素).autoit工 ...

  5. selenium+python-autoit文件上传

    前言 关于非input文件上传,点上传按钮后,这个弹出的windows的控件了,已经跳出三界之外了,不属于selenium的管辖范围(selenium不是万能的,只能操作web上元素).autoit工 ...

  6. web自动化之selenium(三)文件上传

    1.上传标签为input #若上传文件的标签为<input>可以直接定位标签,然后send_keys(文件路径)可以直接上传 2.利用第三方软件Autoit上传 1.下载Autoit:ht ...

  7. 七牛云存储Python SDK使用教程 - 上传策略详解

    文 七牛云存储Python SDK使用教程 - 上传策略详解 七牛云存储 python-sdk 七牛云存储教程 jemygraw 2015年01月04日发布 推荐 1 推荐 收藏 2 收藏,2.7k  ...

  8. python Django之文件上传

    python Django之文件上传 使用Django框架进行文件上传共分为俩种方式 一.方式一 通过form表单进行文件上传 #=================================== ...

  9. python接收html页面上传的文件

    使用的 flask, 没有安装的先安装 pip install flask 示例代码:示例没有自动创建静态文件夹,需要自己在同级 创建一个名为 static 的文件夹来存放上传的文件 示例展示为图片 ...

  10. Python 基于Python实现Ftp文件上传,下载

    基于Python实现Ftp文件上传,下载   by:授客 QQ:1033553122 测试环境: Ftp客户端:Windows平台 Ftp服务器:Linux平台 Python版本:Python 2.7 ...

随机推荐

  1. JAVA常用设计模式(静态化调用和实例化调用的区别,编辑可见 )

    用newInstance()与用new是区别的,区别在于创建对象的方式不一样,前者是使用类加载机制,后者是创建一个新类,且newInstance()只能调用无参构造函数. 最大的区别在于内存.静态方法 ...

  2. C. Molly's Chemicals 暴力 + 统计技巧

    http://codeforces.com/contest/776/problem/C 一开始做的时候,就发现是预处理前缀和,然后对于每一个前缀和,如果他能成为一个贡献,就是能和前面的某些段 组合成和 ...

  3. 使用Appache部署WEB服务器

    Apache的起源(这个就不说了,百度下就都有了) 简介:Apache HTTP Server(简称Apache)是Apache软件基金会的一个开放源码的网页服务器,可以在大多数计算机操作系统中运行, ...

  4. CentOS 安装图形化界面方法

    登录系统,使用yum 安装 #yum groupinstall 'X Window System'  -y 安装GNOME桌面环境 #yum groupinstall  'GNOME Desktop ...

  5. 【转】哪个更快:Java堆还是本地内存

    译文出处: shenzhang   原文出处:原文链接 使用Java的一个好处就是你可以不用亲自来管理内存的分配和释放.当你用new关键字来实例化一个对象时,它所需的内存会自动的在Java堆中分配.堆 ...

  6. 《Head First HTML与CSS》的HTML标签、属性

    一个标准的html5页面: <!doctype html> <html lang="zh-cmn-Hans"> <head> <meta ...

  7. Android开发实现高德地图定位

    1.获取Key 参考官方文档:http://lbs.amap.com/api/android-location-sdk/guide/create-project/get-key 对于签名文件的获取建议 ...

  8. 一个Java编写的小玩意儿--脚本语言解释器(一)

    今天开始想写一个脚本语言编译器.在这个领域,我还是知道的太少了,写的这个过程肯定是艰辛的,因为之前从来没有接触过这类的东西.写在自己的博客里,算是记录自己的学习历程吧.相信将来自己有幸再回过头来看到自 ...

  9. express搭建平台

    1.nodeJs的安装(npm的安装) nodejs官方下载地址:https://nodejs.org 2.express的安装( $ npm install -g express #全局安装expr ...

  10. UI常用字体定义和继承的实例,ResearchKitCode

    #import <UIKit/UIKit.h> @interface UIFont (APCAppearance) + (UIFont*) appRegularFontWithSize: ...