Autoit 制作上传工具完美版
一. 制作上传器
在ui自动化过程中经常遇到需要上传的动作,我们可以使用input标签来送值,但这样不太稳定,所以建议使用autoit制作出来的exe工具。
下面就教大家如何制作上传器,如何使用吧!
新建一个文本文件,命名为uploader.au3,将下面代码复制进去。
这段代码是经过我反复测试的,大家可以放心用哦~
upload() Func upload()
WinWait("[CLASS:#32770]","",3)
If WinExists("打开") then
ControlFocus("打开","","Edit1")
Sleep(500)
;输入需要上传的文件路径
ControlSetText("打开", "", "Edit1", $CmdLine[1])
Sleep(500)
;点击【打开】按钮
ControlClick("打开", "","Button1")
EndIf ;找不到路径时,会触发确认弹窗,点确认,再点取消,该Button1为确认按钮
Sleep(1000)
If WinExists("打开") then
ControlClick("打开", "","Button1")
EndIf ;路径为空时;或者点过上述的确认弹窗后,不能让它挂在那里,点取消
Sleep(1000)
If WinExists("打开") then
ControlClick("打开", "","Button2")
EndIf EndFunc
二. 转化为可执行的exe软件
使用autoit软件里的 autoit script to exe 工具,选择刚才的uploader.au3脚本进行转化。
三. 测试该exe执行情况
调用exe的执行过程封装在seliky里面了,大家也可以用os模块调用exe。
(注:seliky是我自己发版的库,用起来比较顺心,大家想用的话可以自行安装:pip install seliky -i https://pypi.org/simple)
import time
from seliky import WebDriver2 def test_autoit():
"""
在百度识图官网,点击识图按钮,触发系统弹窗,测试上传器执行情况
"""
bs = WebDriver2()
bs.open_browser()
bs.get("https://graph.baidu.com/pcpage/index?tpl_from=pc")
bs.click('//span[@class="graph-d20-search-wrapper-camera"]')
bs.click('//form[@class="general-upload-imgform"]')
uploader_path = 'chrome_uploader.exe' # autoit 上传器测试
bs.upload_with_autoit('', uploader_path) # 路径为空的情况
# bs.upload_with_autoit('d://picture//null.jpg', uploader_path) # 路径错误的情况
# bs.upload_with_autoit('d://picture//girl.jpg', uploader_path) # 路径正常的情况 time.sleep(5) if __name__ == '__main__':
test_autoit()
作者留言
原创不易,如果觉得本文对你有帮助,记得打赏噢O(∩_∩)O,您的支持是我创作路上最大的动力~
Autoit 制作上传工具完美版的更多相关文章
- FlashFXP(强大的FXP/ftp上传工具)V5.0.0.3722简体中文特别版
flashfxp是功能强大的fxp/ftp软件,融合了一些其他优秀ftp软件的优点,如像cuteftp一样可以比较文件夹, FlashFXP是一款功能强大的FXP/ftp上传工具, FlashFXP集 ...
- selenium借助AutoIt识别上传(下载)详解
AutoIt目前最新是v3版本,这是一个使用类似BASIC脚本语言的免费软件,它设计用于Windows GUI(图形用户界面)中进行自动化操作.它利用模拟键盘按键,鼠标移动和窗口/控件的组合来实现自动 ...
- swfupdate flash上传工具
引用:http://baike.baidu.com/view/1332553.htm 下载地址:http://code.google.com/p/swfupload/ 什么是SWFUpload? SW ...
- 转:Selenium借助AutoIt识别上传(下载)详解
AutoIt目前最新是v3版本,这是一个使用类似BASIC脚本语言的免费软件,它设计用于Windows GUI(图形用户界面)中进行自动化操作.它利用模拟键盘按键,鼠标移动和窗口/控件的组合来实现自动 ...
- 转 虫师的selenium借助AutoIt识别上传(下载)详解
selenium借助AutoIt识别上传(下载)详解 2014-12-27 11:26 by 虫师, 755 阅读, 1 评论, 收藏, 编辑 AutoIt目前最新是v3版本,这是一个使用类似BAS ...
- selenium借助AutoIt识别上传(下载)详解【转】
AutoIt目前最新是v3版本,这是一个使用类似BASIC脚本语言的免费软件,它设计用于Windows GUI(图形用户界面)中进行自动化操作.它利用模拟键盘按键,鼠标移动和窗口/控件的组合来实现自动 ...
- PHP 图片上传工具类(支持多文件上传)
====================ImageUploadTool======================== <?php class ImageUploadTool { private ...
- 文件上传工具类 UploadUtil.java
package com.util; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import ja ...
- 小白日记20:kali渗透测试之后渗透测试阶段(一)--上传工具
后渗透测试阶段--上传工具 为防止管理员将漏洞补上后,我们无法再通过该漏洞控制对方主机,所以需要进行后渗透测试阶段 1.上传各种工具 2.提权:为了全面控制目标系统 3.擦除攻击痕迹:防止管理员通过日 ...
- 文件上传工具swfupload[转]
转至:http://zhangqgc.iteye.com/blog/906419 文件上传工具swfupload 示例: 1.JavaScript设置SWFUpload部分(与官方例子类似): var ...
随机推荐
- Spring Security(5)
您好,我是湘王,这是我的博客园,欢迎您来,欢迎您再来- 经常上网的人都应该有这样的体验:很多网站或者APP只需要第一次登录时输入用户名和密码之后,后面很长一段时间内就不需要再次输入密码了.这确实是一个 ...
- -webkit-box-orient:vertical 编译报错之autoprefixer问题
由于各大浏览器的兼容问题,autoprefixer 插件 就可以帮我们自动补齐前缀.它和 less.scss 这样的预处理器不同,它属于后置处理器. 预处理器:在打包之前进行处理 后置处理器:在代码打 ...
- ssm 乱码
1.post乱码:在web.xml中增加解决解决post乱码的过滤器 <!--解决POST乱码问题--> <filter> <filter-name>Charact ...
- 用excel表画一个乐高
一.背景:在商场看到一个超级玛丽的乐高图感觉使用excel的颜色填充也能画出来,并且可以借助python来实现 二.excel表如何绘制正方形:1.统一设置行高与列宽excel表单元格的行与列的默认计 ...
- 【每日一题】【map、数组、二维数组排序、静态函数和库函数】2022年2月24日-NC97 字符串出现次数的TopK问题
描述给定一个字符串数组,再给定整数 k ,请返回出现次数前k名的字符串和对应的次数.返回的答案应该按字符串出现频率由高到低排序.如果不同的字符串有相同出现频率,按字典序排序.对于两个字符串,大小关系取 ...
- 2022-6.824-Lab1:Map&Reduce
lab 地址 : https://pdos.csail.mit.edu/6.824/labs/lab-mr.html 1. 介绍 准备工作 阅读 MapReduce 做什么 实现一个分布式的 Map ...
- Mattermost 笔记
目录 部署 配置 客户端 桌面程序 Android 使用 扩展 Jenkins Hubot 机器人 Jira GitHub Mattermost 是一个开源.可私有化部署的在线通讯平台,可以和Gith ...
- Jmeter之逻辑控制器---while控制器
while控制器与编程语言中的while语句一样,当条件为真时继续执行,不为真时则跳出while循环体,不再执行. while控制器相对于循环控制器来说多了个条件判断,下面为while控制器使用案例. ...
- 浅聊一下Django如何避免xss攻击
一.什么是xss攻击 xss攻击:----->web注入 xss跨站脚本攻击(Cross site script,简称xss)是一种"HTML注入",由于攻击的脚本多数时候是 ...
- HTML笨方法仿写站酷
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...