selenium借助autoit操作上传下载对话框

虫师有一篇文章写的不错,链接如下:http://www.cnblogs.com/fnng/p/4188162.html

他的文章把upload.exe需要上传的文件写死了,下面的内容作为补充。

如果不想把上传过程写死,例如,想在程序中指定要上传的文件,把文件路径作为参数传递给upload.exe进行上传,也是可以的,autoit可以使用参数化做到这一点,见下面的autoit脚本:

ControlFocus("打开","","Edit1")
WinWait("[CLASS:#32770]","",10)
ControlSetText("打开","","Edit1",$CmdLine[1])
Sleep(2000)
ControlClick("打开","","Button1");
上面的代码指定了打开的窗口名称为“打开”,并且使用$CmdLine[1]来指定upload.exe需要的唯一参数。调用该upload.exe的python代码如下:

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模块跟更好用。

如下:

ps=subprocess.Popen(cmd)
ps.wait()


了解了上传的实现过程,那么下载也是一样的。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值