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. Throwing Dice LightOJ - 1064 || (勉强能用的)分数类

    Throwing Dice LightOJ - 1064 方法: 设ans[i][j]表示i个骰子点数恰好为j的概率.那么ans[1][1]到ans[1][6]都为1/6. 显然,$ans[i][j] ...

  2. PHP获取今天开始和结束的时间戳、每周开始结束的时间戳、每月开始结束的时间戳

    PHP获取今天内的时间 今天开始和结束的时间戳 $t = time(); $start = mktime(0,0,0,date("m",$t),date("d" ...

  3. h5-21-文件操作-读取文件内容

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  4. iphone 开发Categories 、Extensions 区别 --转

    Category和Extension这两个概念,即便对于Java程序员,可能也会感到陌生.这是Objective C为程序员提供的两个强大的动态机制——简单地说,它们允许程序员为已有的对象添加新的方法 ...

  5. 使用Appache部署WEB服务器

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

  6. C# winform 创建快捷方式

    using System;using IWshRuntimeLibrary;using System.IO; namespace UavSystem.Common{    public class S ...

  7. 第一个 swift 项目

    今天 学习了 一丢丢 swift,特此记录一下 ! 原来创建的时候 ,只要把 语言 由以前的Object-C改为Swift,变创建好了自己的swift工程 第一个简单的swift demo 上代码 i ...

  8. git常用命令图解 & 常见错误

    Git 常用命令 基本命令 git clone.这是一种较为简单的初始化方式,当你已经有一个远程的Git版本库,只需要在本地克隆一份 git clone git://github.com/someon ...

  9. re正则表达式2

    1.“字符*” 匹配*前面的字符0次或者多次. 注意:是匹配*前一个字符,只能是*前一个字符多次打印出来.*前面其他的字符相当于前缀会打印出来,但是不会再匹配. *前一个字符前面的其他字符里的首字符先 ...

  10. NIO入门之轻松读取大文件

    NIO入门之轻松读取大文件 今天同事碰到了一个问题,从游戏服务器下载下来的输出log有一个多G大.用记事本打不开,EditPlus也打不开,都提示文件太大.用word也打不开,提示文件大于512M.打 ...