Python+selenium(Autolt实现上传)
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实现上传)的更多相关文章
- python+selenium:解决上传文件<input type='file'>标签属性被css的visibility隐藏导致无法定位元素的问题
要想上传文件,需要找到在HTML中<input type="file" />这个标签,有它就可以利用send_keys上传文件,不过这里的<input>元素 ...
- 【python+selenium自动化】基于Autolt实现上传
在UI自动化过程中,总会遇到文件上传的操作,一般的,标签为input,可以直接使用sendkeys 如果他仅仅是一个button,那则无法直接sendkeys,则需要用到autoIT这个工具 基于Au ...
- selenium+python自动化77-autoit文件上传
前言 关于非input文件上传,点上传按钮后,这个弹出的windows的控件了,已经跳出三界之外了,不属于selenium的管辖范围(selenium不是万能的,只能操作web上元素).autoit工 ...
- selenium+python自动化77-autoit文件上传【转载】
前言 关于非input文件上传,点上传按钮后,这个弹出的windows的控件了,已经跳出三界之外了,不属于selenium的管辖范围(selenium不是万能的,只能操作web上元素).autoit工 ...
- selenium+python-autoit文件上传
前言 关于非input文件上传,点上传按钮后,这个弹出的windows的控件了,已经跳出三界之外了,不属于selenium的管辖范围(selenium不是万能的,只能操作web上元素).autoit工 ...
- web自动化之selenium(三)文件上传
1.上传标签为input #若上传文件的标签为<input>可以直接定位标签,然后send_keys(文件路径)可以直接上传 2.利用第三方软件Autoit上传 1.下载Autoit:ht ...
- 七牛云存储Python SDK使用教程 - 上传策略详解
文 七牛云存储Python SDK使用教程 - 上传策略详解 七牛云存储 python-sdk 七牛云存储教程 jemygraw 2015年01月04日发布 推荐 1 推荐 收藏 2 收藏,2.7k ...
- python Django之文件上传
python Django之文件上传 使用Django框架进行文件上传共分为俩种方式 一.方式一 通过form表单进行文件上传 #=================================== ...
- python接收html页面上传的文件
使用的 flask, 没有安装的先安装 pip install flask 示例代码:示例没有自动创建静态文件夹,需要自己在同级 创建一个名为 static 的文件夹来存放上传的文件 示例展示为图片 ...
- Python 基于Python实现Ftp文件上传,下载
基于Python实现Ftp文件上传,下载 by:授客 QQ:1033553122 测试环境: Ftp客户端:Windows平台 Ftp服务器:Linux平台 Python版本:Python 2.7 ...
随机推荐
- 数组Reduce的应用
数组Reduce的应用 参考 简单应用 var arr = [1,2,3,4,5] var sum = arr.reduce(function (prev, cur, index, arr) { co ...
- oracle如何设置最大连接数
查看session: select * from v$session where username is not null select username,count(username) from v ...
- 关于list,字符串的小记录
1.关于操作list的命令: a.append("hi") 这个可以在list的最后一项加上个这个字符串"hi",a是list的名字. del a[3] 删去l ...
- mysql索引命中规则
转于:https://blog.csdn.net/claram/article/details/77574600 首先明确:为什么要用联合索引? 对于查询语句“SELECT E.* FROM E WH ...
- php 生成饼状图,折线图,条形图 通用类 2
生成饼状图,折线图,条形图通用的php类,这里使用的是国外的 HighCharts,前台页面别忘了调用HighCahrt js HighCharts中文网站 http://www.hcharts. ...
- http://bbs.chinaunix.net/thread-1463276-1-1.html
http://bbs.chinaunix.net/thread-1463276-1-1.html
- python中 import 和from ... import 的区别
先看一个例子: 我自定义的一个moudle,里面有一个方法sayhi,还有一个变量version#!/usr/bin/env python # coding=utf-8 # Filename: mym ...
- win应用只允许单个实例运行,并将已运行实例窗口置顶
关键词:windows,c++,桌面应用,单个实例,窗口置顶 目标:1.判断本程序是否已有一个实例在运行.2.若有,则激活已在运行的实例(将其窗口置顶),并退出当前运行. 1.使用semaphore来 ...
- windows session logoff时进行处理动作
目标:Windows session logoff时得到通知,进行一些记录/清理工作 测试平台: win7 x64 logoff时系统会发送WM_ENDSESSION消息,如果某个应用对这个消息的处理 ...
- # Transition:添加弹出过渡效果
# Transition:添加弹出过渡效果 通过鼠标的单击.获得焦点,被点击或对元素任何改变中触发,并平滑地以动画效果改变CSS的属性值. W3C-transition MDN-transition ...