Selenium+java上传文件

自动化调用:

  • AutoIT脚本编译成可执行文件后,放在本地的某一个目录下
  • 上传文件时,首先定位到【上传】字样文本,点击该按钮
  • 执行编辑后的可执行文件,实现文件上传

一、安装AutoIT3,主要用到的工具

  AutoIt Windows Info   用于帮助我们识Windows控件信息。

  Compile Script to.exe 用于将AutoIt生成 exe 执行文件。

  Run Script            用于执行AutoIt脚本。

  SciTE Script Editor   用于编写AutoIt脚本。

  1)、用AutoIt Windows Info  识别Windows控件信息,如按钮

  

2、用SciTE Script Editor编写脚本,脚本内容如下:

  ;first make sure the number of arguments passed into the scripts is more than 1
  If $CmdLine[0]<2 Then Exit EndIf ;if parmas num <2 ,then break
  ;$CmdLine[0] ;参数的数量
  ;$CmdLine[1] ;第一个参数 (脚本名称后面)
  ;$CmdLine[2] ;第二个参数
  ;都是从cmd传入参数
  handleUpload($CmdLine[1],$CmdLine[2])

  ;定义上传函数,有两个参数,第一个是浏览器名字,第二参数是文件路径
   Func handleUpload($browser, $uploadfile)
       Dim $title                          ;定义一个title变量
              ;根据弹窗的title来判断是什么浏览器
              If $browser="ie" Then                          ; 代表IE浏览器
                    $title="选择要加载的文件"
              ;ElseIf $browser="chrome" Then               ; 代表谷歌浏览器
                 ;  $title="打开"
              ElseIf    $browser="firefox" Then             ; 代表火狐浏览器
                    $title="文件上传"
              EndIf

  if WinWait($title,"",4) Then ;等待弹出出现,最大等待时间是4秒
                     WinActivate($title)                  ;找到弹出窗口之后,激活当前窗口
                     ControlSetText($title,"","Edit1",$uploadfile)   ;把文件路径放入输入框,此Edit1是用FinderTool获取到的
                     ControlClick($title,"","Button1")                ;点击保存或者打开或者上传按钮,此Button1使用FinderTool获取到的
              Else
                Return False
              EndIf
   EndFunc

  说明:title是AutoIt Window Info识别出的Title字段,controlID是AutoIt Window Info识别出的Class和Instance的拼接

  运行脚本,Toos-->Go,运行时,上传窗口处于打开状态。

  3)、用Complie Script to .exe工具,将脚本编译成可执行文件,即编译成.exe格式

  

二、执行AutoIT编写的.exe文件

  /*
     * 上传文件
     * 普通上传:普通的附件上传是将本地文件的路径作为i一个值放在input标签中,通过form表单将这个值提交给服务器
     */
    //定义上传函数,第一个参数browser是浏览器的名字,第二个参数filePath是文件路径
    public void handleUpload(String browser,String filePath) {
        //定义了autoit.ext文件的路径
        String executeFile=System.getProperty("user.dir")+"\\test_exe\\autoit.exe";
        String cmd = "\""+ executeFile+ "\""+ " "+ "\""+ browser+ "\""+ " "+ "\""+ filePath+ "\"";
        System.out.println(cmd);
        try{
            Process process= Runtime.getRuntime().exec(cmd);
            process.waitFor();
        } catch(Exception e) {
            e.printStackTrace();
        }
    }

  /**
     * 导入文件
     * */
    public void  ExcelImport(String filePath){
        browse_m.click(); //@FindBy(name="get_file")  public WebElement browse_m;//点击浏览按钮
        handleUpload(DriverManager.browserType,filePath);  
    }

  使用的时候直接调用就可以

  

时间: 2024-10-18 18:12:52

Selenium+java上传文件的相关文章

Java上传文件2

文件上传一直是B/S结构中很重要的一项功能,在Java中并没有很好的实现文件上传的类包,因此出现了一些开源的组件,Smartupload ,commons-fileupload,还有国内的一个"牛人"的(不好意思叫不上名字来),这几个组件中Smartupload 出来的时候应该最早,不过现在已经不再有新的版本出现,还有一个不足的地方就是Smartupload 支持上传的文件最大在100M左右,这可满足不了客户的需求,听说commons-fileupload不错,经过几番测试终于搞定,下

java上传文件到Tomcat之外

通过配置Tomcta的虚拟路径,即将请求映射到实际的物理路径下,实现上传文件的保存地址和服务器的分离.需要配置tomcat的\conf\server.xml文件 tomcat配置完成后,页面中在写上虚拟地址 则可以映射到实际地址取数据了. 原文地址:https://www.cnblogs.com/caotao0918/p/11791025.html

Java上传文件夹(Jersey)

背景介绍:公司要在CMS系统上为运营人员提供一个功能供运营人员将做好的活动页面上传到阿里云存储上,上传的内容为一个文件夹,文件夹内部有.html网页,JS文件夹下有JS文件,CSS文件夹下有样式表,Images文件夹下有多张图片,具体的目录接口如下: 要在网页上将整个文件夹进行上传,下面介绍下我整个实现的过程. 项目架构,前端使用的JSP,后端使用的Jersey,一个类似WebService的技术. 直接上代码,前端JSP文件: <%@ page language="java"

java上传文件获取跟目录的办法

在java中获得文件的路径在我们做上传文件操作时是不可避免的.web 上运行1:this.getClass().getClassLoader().getResource("/").getPath();this.getClass().getClassLoader().getResource("").getPath();  得到的是 ClassPath的绝对URI路径.如:/D:/jboss-4.2.2.GA/server/default/deploy/hp.war/W

java上传文件常见几种方式

1.ServletFileUpload 表单提交中当提交数据类型是multipare/form-data类型的时候,如果我们用servlet去做处理的话,该http请求就会被servlet容器,包装成httpservletRequest对象 ,在由相应的servlet进行处理.      package com.jws.app.operater.service.impl; import java.io.File; import java.util.HashMap; import java.uti

Java上传文件

Action /* * 后台商品管理的Action */ public class AdminProductAction extends ActionSupport implements ModelDriven<Product> { //模型驱动要使用的对象 private Product product=new Product(); public Product getModel() { return product; } //文件上传需要的参数 private File upload; /

java 上传文件-生成文件首页缩略图 生成pdf 抓取图片

方法:1.文件转换成pdf(采用openoffice或者jacob)   2.抓取pdf首页图 第一步:采用jacob: a.下载jacob  注意区分32位,64位,否则不能用 将dll文件放在java bin目录下即可 jar包引入项目 b.转换pdf package cn.bnsr.edu_yun.util; import java.io.File; import java.io.IOException; import com.jacob.activeX.ActiveXComponent;

java 异步上传文件

我们的java上传文件,需要form同步上传,并且需要设置enctype为multipart/form-data. 如果将form使用ajax异步提交的话,将会报错说enctype不是multipart/form-data类型 但有时候确实又有酱紫的需求,可以实现,需要借助jquery.form.js 插件 插件下载地址为: http://yun.baidu.com/share/link?shareid=1698628055&uk=2836507213 下面贴出关键性代码 jsp代码为: <

Selenium上传文件方法总结

Web上本地上传图片,弹出的框Selenium是无法识别的,也就是说,selenium本身没有直接的方法去实现上传本地文件,这里总结了两种上传文件的方式. 一.利用Robot类处理文件上传. 其大致流程可以为: 1. 利用selenium点击web上本地文件的上传按钮: 2. 在弹出的弹框中,文件路径输入框默认的是光标的聚焦,将文件在磁盘上的路径通过拷贝和黏贴的方法写上去. 3. 通过按下回车,默认触发弹框的确定按钮,完成文件上传的功能. 这里以百度首页的利用图片搜索为例: 打开百度首页,搜索按