selenium autoit java_Java+Selenium——AutoIt工具处理文件上传
关于文件上传,这边介绍一个第三方工具,叫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工具处理文件上传相关推荐
- springboot文件上传、下载使用ftp工具将文件上传至服务器
springboot文件上传.下载使用ftp工具 首先在服务器搭建ftp服务 配置文件(在application.properties中) # Single file max size multipa ...
- TCP文件上传Java_java 基于TCP协议的文件上传
参考文档 1.https://www.sxt.cn/Java_jQuery_in_action/ten-filebytestream.html 2.https://www.sxt.cn/Java_jQ ...
- apache实现文件上传服务器,使用Apache的Fileupload工具实现文件上传
这个小组件,它会帮我们解析request中的上传数据,解析后的结果是一个表单项数据封装到一个FileItem对象中.我们只需要调用FileItem的方法即可. Maven依赖 commons-file ...
- python selenium 下载文件_Python Selenium —— 文件上传、下载,其实很简单
很多selenium学习者被浏览器弹出的文件上传.下载框折磨的痛不欲生,今天博主就带你们轻松搞定上传和下载问题. 上传 上传弹框 文件上传是所有UI自动化测试都要面对的一个头疼问题,要处理这个问题,我 ...
- Android Day05-网络编程之文件上传
Android文件上传实现 分析:利用抓包工具查看文件上传发现,文件上传的请求体十分的复杂,根本难以用 HttpURLConnection.HttpClient来实现.但是用AsyncHttpClie ...
- 接口测试文件上传(python+requests)
在做接口测试的时候,往往会有需要文件上传的接口,今天教大家使用apipost接口测试工具和python+requests脚本进行接口测试. 一.使用python+requests python+req ...
- SpringBoot文件上传与校验
文章目录 一.简介 1.概述 2.环境与技术介绍 3.简单的文件上传 二.文件校验与上传实战 1. 前提准备 2. 文件枚举类 3. 自定义文件校验注解 4. 文件校验切面 5. 文件上传工具类 6. ...
- 文件上传保姆级教程(原理,大小马,CTF,防御,绕狗一句话,upload-labs)
文章目录 文件上传漏洞简历 产生原因 危害 容易出现文件上传漏洞的地方 概括 环境搭建 一句话马 一句话木马原理 webshell常用的一句话 图片一句话 小马与大马的区别 webshell管理工具 ...
- java上传与下载文件_JavaWeb之实现文件上传与下载
1.什么是上传和下载? - 数据上传是指客户端向服务器上传数据,客户端向服务器发送的所有请求都属于数据上传.文件上传是数据上传的一种特例,指的是客户端向服务器上传文件.即将保存在客户端的文件上传至服 ...
最新文章
- mysql 修改时间段内_详解mysql数据库MyISAM存储引擎如何转为Innodb及其中的注意点...
- java单链表节点翻转_单链表Java实现
- 《Cracking the Coding Interview》——第16章:线程与锁——题目3
- eclipse没有日志_「开源资讯」Jboot v3.3.6 发布,更强大的控制台请求日志
- 计算机网络的网络层功能在内完成,计算机网络习题及答案
- linux 提示符 异常,linux终端提示符异常 bash-4.1$
- go 基准测试 找不到函数_基于Golang做测试
- Python之网络编程(socket基础)
- linux 权限管理命令chown、chgrp、umask、linux新建文件或目录的默认权限755
- java8+array+join_Fork/Join 框架详解(基于 JDK 8)
- Guava之EventBus使用总结
- Kepware与C#
- 【微服务】使用yml格式进行nacos拓展配置
- java接口的实现原理_Java接口和抽象类原理详解
- 用计算机解决对长江水源治理的问题,科学调控长江水资源的思考
- gg修改器怎么修改服务器数值,gg修改器怎么修改数值 | 手游网游页游攻略大全...
- JAVA 获取今天、昨天、上周等日期
- 【2023年1月·第二周】-单词学习记录(1月9日-1月15日)
- Clock skew too great(37)-PREAUTH_FAILED
- Blender插件Gizmo 3d Cursor And Saving Position 3D 1.5.0 光标
热门文章
- 在kubernetes 集群内访问k8s API服务
- 使用高性能Pipelines构建.NET通讯程序
- 分布式系统(微服务架构)的一致性和幂等性问题相关概念解析
- Entity Framework Core的贴心:优雅处理带默认值的数据库字段
- win10系统按esc会弹出计算机,win10系统版本2004控制面板多出ESC是什么原因?
- linux 字符串加入中括号,Linux Shell 基础 -- 总结几种括号、引号的用法
- java开发保险案例_Java实现双保险线程的示例代码
- [转]SDK与API区别
- 学习SQL数据更新,这一篇就够了!
- 子窗体菜单合并到父窗体菜单的解决办法