借助autoit操作上传下载对话框(参数化)

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

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

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

[plain] view plain copy

  1. ControlFocus("打开","","Edit1")
  2. WinWait("[CLASS:#32770]","",10)
  3. ControlSetText("打开","","Edit1",$CmdLine[1])
  4. Sleep(2000)
  5. ControlClick("打开","","Button1");

上面的代码指定了打开的窗口名称为“打开”,并且使用$CmdLine[1]来指定upload.exe需要的唯一参数。调用该upload.exe的python代码如下:

[python] view plain copy

  1. browser.find_element_by_id("crop_logo").click()    #首先需要使用webdriver点击web页面的控件,弹出上传文件对话框后,这时,autoit脚本就可以寻找到上传文件对话框,并进行autoit脚本中的预设动作。
  2. # upload.exe接收一个参数,就是要上传的文件路径,目前只支持上传文件对话框是"打开"的windows窗口
  3. exe_path=base_dir+"\\resource\\upload.exe"
  4. file_path=base_dir+"\\resource\\img.png"
  5. cmd=exe_path+" "+file_path
  6. ps=subprocess.Popen(cmd)
  7. ps.wait()

注:调用upload.exe也可使用subprocess模块,比os模块跟更好用。

如下:

[python] view plain copy

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

了解了上传的实现过程,那么下载也是一样的。

时间: 2024-10-24 17:57:48

借助autoit操作上传下载对话框(参数化)的相关文章

selenium借助AutoIt识别上传(下载)详解

转自:http://www.cnblogs.com/fnng/p/4188162.html AutoIt目前最新是v3版本,这是一个使用类似BASIC脚本语言的免费软件,它设计用于Windows GUI(图形用户界面)中进行自动化操作.它利用模拟键盘按键,鼠标移动和窗口/控件的组合来实现自动化任务. 官方网站:https://www.autoitscript.com/site/ 从网站上下载AutoIt并安装,安装完成在菜单中会看到图4.13的目录: 图4.13  AutoIt菜单 AutoIt

转:Selenium借助AutoIt识别上传(下载)详解

AutoIt目前最新是v3版本,这是一个使用类似BASIC脚本语言的免费软件,它设计用于Windows GUI(图形用户界面)中进行自动化操作.它利用模拟键盘按键,鼠标移动和窗口/控件的组合来实现自动化任务. 从网站上下载AutoIt并安装,安装完成在菜单中会看到图4.13的目录: 图4.13  AutoIt菜单 AutoIt Windows Info   用于帮助我们识Windows控件信息. Compile Script to.exe 用于将AutoIt生成 exe 执行文件. Run Sc

yii2 ftp 的常规操作 上传 下载

<?php function make_directory($ftp_stream, $dir){ // if directory already exists or can be immediately created return true if (ftp_is_dir($ftp_stream, $dir) || @ftp_mkdir($ftp_stream, $dir)) return true; // otherwise recursively try to make the direc

Selenium2学习-039-WebUI自动化实战实例-文件上传下载

通常在 WebUI 自动化测试过程中必然会涉及到文件上传的自动化测试需求,而开发在进行相应的技术实现是不同的,粗略可划分为两类:input标签类(类型为file)和非input标签类(例如:div.a或其他方式结合实现). 非input标签类因其有各式各样的实现方式,需要考虑具体的场景,因而此文对此类文件上传不做讲解,以input标签实现文件上传的方式进行讲解,请知悉! 解决方案有如下三种: 1.定位元素直接通过sendkeys修改input标签的文件链接: 2.通过第三方控件(AutoIt)编

SFTP上传下载文件、文件夹常用操作

SFTP上传下载文件.文件夹常用操作 1.查看上传下载目录lpwd 2.改变上传和下载的目录(例如D盘):lcd  d:/ 3.查看当前路径pwd 4.下载文件(例如我要将服务器上tomcat的日志文件取出来)进入你要下的文件所在的文件夹:cd /usr/apache-tomcat-6.0.39/logs/下载:get catalina.out 5.上传文件(例如我要上传一个文件到usr目录下)进入你想要上传文件的目录cd /usr上传文件put do.sh 6.上传下载文件夹格式:下载文件夹g

Linux下不借助工具实现远程linux服务器上传下载文件

# Linux下不借助工具实现远程linux服务器上传下载文件 ## 简介 - Linux下自带ssh工具,可以实现远程Linux服务器的功能- Linux下自带scp工具,可以实现文件传输功能 ## 登录服务器 - `ssh [email protected]` 登录服务器```PC:~$ ssh [email protected][email protected]'s password: ``` ## 文件传输 - 下载文件- `scp [email protected]:/data/log

【FTP】org.apache.commons.net.ftp.FTPClient实现复杂的上传下载,操作目录,处理编码

和上一份简单 上传下载一样 来,任何的方法不懂的,http://commons.apache.org/proper/commons-net/apidocs/org/apache/commons/net/ftp/FTPClient.html API拿走不谢!!! 1.FTP配置实体 1 package com.agen.util; 2 3 public class FtpConfig { 4 //主机ip 5 private String FtpHost = "192.168.18.252&quo

配置允许匿名用户登录访问vsftpd服务,进行文档的上传下载、文档的新建删除等操作

这里在centos7版本系统下验证的. 一般情况下,匿名用户的上传下载,所使用的用户都是ftp用户的权限:若要上传文件,则需要ftp用户对文件有w的权限,若要下载,则需要ftp用户对文件有r的权限. 步骤 修改配置文件vsftpd.conf(根据需要配置)# vim /etc/vsftpd/vsftpd.conf    anonymous_enable=YES                  #是否允许匿名用户登录    write_enable=YES                    

21、文件上传/下载

一.文件的上传和下载 要将客户端(浏览器)大数据存储到服务器端,不将数据直接存储到数据库中,而是要将数据存储到服务器所在的磁盘上(减少了数据库服务器的压力,对数据的操作更加灵活) 1.文件上传的原理 1.1 文件上传的必要前提: (1)提供form表单,method必须是post (2)form表单的enctype(编码类型)必须是 multipart/form-data (3)提供input type="file"类的上传输入域 ${pageContext.request.conte