首页 > 代码库 > 借助autoit操作上传下载对话框(参数化)
借助autoit操作上传下载对话框(参数化)
虫师有一篇文章写的不错,链接如下:http://www.cnblogs.com/fnng/p/4188162.html
他的文章把upload.exe需要上传的文件写死了,下面的内容作为补充。
如果不想把上传过程写死,例如,想在程序中指定要上传的文件,把文件路径作为参数传递给upload.exe进行上传,也是可以的,autoit可以使用参数化做到这一点,见下面的autoit脚本:
[plain] view plain copy
- ControlFocus("打开","","Edit1")
- WinWait("[CLASS:#32770]","",10)
- ControlSetText("打开","","Edit1",$CmdLine[1])
- Sleep(2000)
- ControlClick("打开","","Button1");
上面的代码指定了打开的窗口名称为“打开”,并且使用$CmdLine[1]来指定upload.exe需要的唯一参数。调用该upload.exe的python代码如下:
[python] view plain copy
- browser.find_element_by_id("crop_logo").click() #首先需要使用webdriver点击web页面的控件,弹出上传文件对话框后,这时,autoit脚本就可以寻找到上传文件对话框,并进行autoit脚本中的预设动作。
- # upload.exe接收一个参数,就是要上传的文件路径,目前只支持上传文件对话框是"打开"的windows窗口
- exe_path=base_dir+"\\resource\\upload.exe"
- file_path=base_dir+"\\resource\\img.png"
- cmd=exe_path+" "+file_path
- ps=subprocess.Popen(cmd)
- ps.wait()
注:调用upload.exe也可使用subprocess模块,比os模块跟更好用。
如下:
[python] view plain copy
- ps=subprocess.Popen(cmd)
- ps.wait()
了解了上传的实现过程,那么下载也是一样的。
借助autoit操作上传下载对话框(参数化)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。