关于文件上传,这边介绍一个第三方工具,叫AutoIt,简单来说,这个是一个能支持桌面GUI自动化的工具,它支持脚本语言编写。这里,我们用AutoIt来做文件上传的演示。在Selenium脚本中如果需要AutoIt来协助这个文件上传功能,大概步骤是这样的:

1. Selenium点击web产品上的文件上传按钮,弹窗上传框。

2.执行AutoIt实现准备好的脚本文件,这个脚本文件写了关于上传什么文件的一个.exe文件。

所以,我们先来介绍如何下载和安装AutoIt。

1)打开AutoIt的官网下载地址

2)点击下载zip

两种下载方法都可以,这里我想下载的是zip,解压出来如下图.

3)点击SciTe文件夹,我们打开脚本编辑器。

4)打开百度图片上传窗口,同时打开AutoIt 脚本编辑器和元素定位器。

拖动元素定位器上那个靶点形状按钮到文件上传弹窗,能够捕获到一些元素信息。

5)在AutoIt脚本编辑器里输入如下脚本,不要下面我写的备注哈。

ControlFocus("文件上传","","Edit1")

ControlSetText("文件上传","","Edit1","C:\Users\del\Desktop\123.gif")

ControlClick("文件上传","","Button1")

6)编译成一个.exe文件

先保存到本地,例如默认路径保存,名称为UploadFile.au3,

然后在AutoIt脚本编辑器中点击Tools菜单,选择compile,会在同路径下生成一个UploadFile.exe的文件,

我们把这个文件拷贝到桌面,待会在Selenium脚本要使用。

7)Selenium脚本执行123.exe文件,观察文件是否上传。

packagerjcs;importjava.io.File;importjava.awt.Rectangle;importjava.awt.Robot;importjava.awt.Toolkit;importjava.awt.image.BufferedImage;importjava.awt.image.BufferedImage;importorg.apache.commons.io.FileUtils;importorg.openqa.selenium.By;importorg.openqa.selenium.OutputType;importorg.openqa.selenium.TakesScreenshot;importorg.openqa.selenium.firefox.FirefoxDriver;importjava.text.DateFormat;importjava.text.SimpleDateFormat;importjava.util.Date;importjavax.imageio.ImageIO;public classzmjsj

{public static voidmain(String[] args)

{

System.setProperty("webdriver.firefox.bin","C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe"); //设置火狐的安装路径,防止系统找不到

FirefoxDriver driver= new FirefoxDriver(); //初始化FireFox浏览器实例,并打开浏览器

try{

driver.manage().window().maximize();//最大化窗口

Thread.sleep(3000);

driver.manage().window().maximize();//最大化窗口

Thread.sleep(3000);

driver.get("https://www.baidu.com/");

Thread.sleep(3000);

driver.findElement(By.xpath("//*/span[@class='soutu-btn']")).click(); //点击照相机这个按钮

Thread.sleep(8000);

driver.findElement(By.xpath("//*/input[@class='upload-pic']")).click(); //点击本地上传图片

Thread.sleep(8000);

Runtime.getRuntime().exec("C:\\Users\\del\\Desktop\\123.exe");//执行桌面的AutoIt封装的脚本

Thread.sleep(10000);

}catch(Exception e)

{

e.printStackTrace();

}finally{

driver.quit();

}

}

}

selenium autoit java_Java+Selenium——AutoIt工具处理文件上传相关推荐

  1. springboot文件上传、下载使用ftp工具将文件上传至服务器

    springboot文件上传.下载使用ftp工具 首先在服务器搭建ftp服务 配置文件(在application.properties中) # Single file max size multipa ...

  2. TCP文件上传Java_java 基于TCP协议的文件上传

    参考文档 1.https://www.sxt.cn/Java_jQuery_in_action/ten-filebytestream.html 2.https://www.sxt.cn/Java_jQ ...

  3. apache实现文件上传服务器,使用Apache的Fileupload工具实现文件上传

    这个小组件,它会帮我们解析request中的上传数据,解析后的结果是一个表单项数据封装到一个FileItem对象中.我们只需要调用FileItem的方法即可. Maven依赖 commons-file ...

  4. python selenium 下载文件_Python Selenium —— 文件上传、下载,其实很简单

    很多selenium学习者被浏览器弹出的文件上传.下载框折磨的痛不欲生,今天博主就带你们轻松搞定上传和下载问题. 上传 上传弹框 文件上传是所有UI自动化测试都要面对的一个头疼问题,要处理这个问题,我 ...

  5. Android Day05-网络编程之文件上传

    Android文件上传实现 分析:利用抓包工具查看文件上传发现,文件上传的请求体十分的复杂,根本难以用 HttpURLConnection.HttpClient来实现.但是用AsyncHttpClie ...

  6. 接口测试文件上传(python+requests)

    在做接口测试的时候,往往会有需要文件上传的接口,今天教大家使用apipost接口测试工具和python+requests脚本进行接口测试. 一.使用python+requests python+req ...

  7. SpringBoot文件上传与校验

    文章目录 一.简介 1.概述 2.环境与技术介绍 3.简单的文件上传 二.文件校验与上传实战 1. 前提准备 2. 文件枚举类 3. 自定义文件校验注解 4. 文件校验切面 5. 文件上传工具类 6. ...

  8. 文件上传保姆级教程(原理,大小马,CTF,防御,绕狗一句话,upload-labs)

    文章目录 文件上传漏洞简历 产生原因 危害 容易出现文件上传漏洞的地方 概括 环境搭建 一句话马 一句话木马原理 webshell常用的一句话 图片一句话 小马与大马的区别 webshell管理工具 ...

  9. java上传与下载文件_JavaWeb之实现文件上传与下载

    1.什么是上传和下载? -  数据上传是指客户端向服务器上传数据,客户端向服务器发送的所有请求都属于数据上传.文件上传是数据上传的一种特例,指的是客户端向服务器上传文件.即将保存在客户端的文件上传至服 ...

最新文章

  1. mysql 修改时间段内_详解mysql数据库MyISAM存储引擎如何转为Innodb及其中的注意点...
  2. java单链表节点翻转_单链表Java实现
  3. 《Cracking the Coding Interview》——第16章:线程与锁——题目3
  4. eclipse没有日志_「开源资讯」Jboot v3.3.6 发布,更强大的控制台请求日志
  5. 计算机网络的网络层功能在内完成,计算机网络习题及答案
  6. linux 提示符 异常,linux终端提示符异常 bash-4.1$
  7. go 基准测试 找不到函数_基于Golang做测试
  8. Python之网络编程(socket基础)
  9. linux 权限管理命令chown、chgrp、umask、linux新建文件或目录的默认权限755
  10. java8+array+join_Fork/Join 框架详解(基于 JDK 8)
  11. Guava之EventBus使用总结
  12. Kepware与C#
  13. 【微服务】使用yml格式进行nacos拓展配置
  14. java接口的实现原理_Java接口和抽象类原理详解
  15. 用计算机解决对长江水源治理的问题,科学调控长江水资源的思考
  16. gg修改器怎么修改服务器数值,gg修改器怎么修改数值 | 手游网游页游攻略大全...
  17. JAVA 获取今天、昨天、上周等日期
  18. 【2023年1月·第二周】-单词学习记录(1月9日-1月15日)
  19. Clock skew too great(37)-PREAUTH_FAILED
  20. Blender插件Gizmo 3d Cursor And Saving Position 3D 1.5.0 光标

热门文章

  1. 在kubernetes 集群内访问k8s API服务
  2. 使用高性能Pipelines构建.NET通讯程序
  3. 分布式系统(微服务架构)的一致性和幂等性问题相关概念解析
  4. Entity Framework Core的贴心:优雅处理带默认值的数据库字段
  5. win10系统按esc会弹出计算机,win10系统版本2004控制面板多出ESC是什么原因?
  6. linux 字符串加入中括号,Linux Shell 基础 -- 总结几种括号、引号的用法
  7. java开发保险案例_Java实现双保险线程的示例代码
  8. [转]SDK与API区别
  9. 学习SQL数据更新,这一篇就够了!
  10. 子窗体菜单合并到父窗体菜单的解决办法