Java+Selenium——AutoIt工具处理文件上传

参考:https://blog.csdn.net/u011541946/article/details/74359517

参考:https://blog.csdn.net/linxi9322/article/details/78789452

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

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

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

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

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

https://www.autoitscript.com/site/autoit/downloads/

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文件,观察文件是否上传。

package rjcs;

import java.io.File;
import java.awt.Rectangle;
import java.awt.Robot;
import java.awt.Toolkit;
import java.awt.image.BufferedImage;
import java.awt.image.BufferedImage;

import org.apache.commons.io.FileUtils;
import org.openqa.selenium.By;
import org.openqa.selenium.OutputType;
import org.openqa.selenium.TakesScreenshot;
import org.openqa.selenium.firefox.FirefoxDriver;

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;

import javax.imageio.ImageIO;

public class zmjsj
{

    public static void main(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();

         }
   }

}

原文地址:https://www.cnblogs.com/xiaobaibailongma/p/12218933.html

时间: 2024-08-23 06:14:18

Java+Selenium——AutoIt工具处理文件上传的相关文章

使用工具实现文件上传

开发步骤: 先给大家介绍了要用到的两个类: (1)DIskFileItemFactory对象:用于设置缓存大小和缓存目录 (2)ServletFileUpload对象:来解析文件 1]导两个jar包 commons-fileupload-1.2.2.jar   右键Build Path  -->  add path commons-io-2.0.1.jar 右键Build Path  -->  add path 在E盘下新建一个文件夹为TestData,在文件夹中新建两个文件夹:FileTem

Java实现HTML5拖拽文件上传

这是主页面 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+reques

JSch - Java实现的SFTP(文件上传详解篇) 转

JSch是Java Secure Channel的缩写.JSch是一个SSH2的纯Java实现.它允许你连接到一个SSH服务器,并且可以使用端口转发,X11转发,文件传输等,当然你也可以集成它的功能到你自己的应用程序. 本文只介绍如何使用JSch实现的SFTP功能. SFTP是Secure File Transfer Protocol的缩写,安全文件传送协议.可以为传输文件提供一种安全的加密方法.SFTP 为 SSH的一部份,是一种传输文件到服务器的安全方式.SFTP是使用加密传输认证信息和传输

关于Java网络爬虫---模拟txt文件上传操作。

业务需求是这样的,公司400业务中客户使用的,400电话号码,可以添加多个目的码你可以理解为转接号码: 这些配置的目的码我们会在网关服务器上配置成白名单,既拥有某些权限.先提出的要求是先添加或者变动目的码要及时同步到网关. 场景: 1.我们的网关服务器接受的白名单(目的码)是已txt文件上传的,数据按照制定的格式保存在txt里面. 2.利用Java网络爬虫模拟txt文件上传.------2018-4-7现在不写了,代码在公司电脑上明天总结一下在写. 原文地址:https://www.cnblog

selenium+python自动化77-autoit文件上传【转载】

前言 关于非input文件上传,点上传按钮后,这个弹出的windows的控件了,已经跳出三界之外了,不属于selenium的管辖范围(selenium不是万能的,只能操作web上元素).autoit工具处理windows的控件窗口是专业的,所以这个需借助AutoIt来解决了. 一.环境准备 1.可以autoit官网上下载,安装 http://www.autoitscript.com/site/ 2.下载到本地后傻瓜式安装,安装完之后在应用程序找到这个Autoit v3 3.AutoIt里面几个菜

selenium+python自动化77-autoit文件上传

前言 关于非input文件上传,点上传按钮后,这个弹出的windows的控件了,已经跳出三界之外了,不属于selenium的管辖范围(selenium不是万能的,只能操作web上元素).autoit工具处理windows的控件窗口是专业的,所以这个需借助AutoIt来解决了. 一.环境准备 1.可以autoit官网上下载,安装 http://www.autoitscript.com/site/ 2.下载到本地后傻瓜式安装,安装完之后在应用程序找到这个Autoit v3 3.AutoIt里面几个菜

【转】JSch - Java实现的SFTP(文件上传详解篇)

JSch是Java Secure Channel的缩写.JSch是一个SSH2的纯Java实现.它允许你连接到一个SSH服务器,并且可以使用端口转发,X11转发,文件传输等,当然你也可以集成它的功能到你自己的应用程序. 本文只介绍如何使用JSch实现的SFTP功能. SFTP是Secure File Transfer Protocol的缩写,安全文件传送协议.可以为传输文件提供一种安全的加密方法.SFTP 为 SSH的一部份,是一种传输文件到服务器的安全方式.SFTP是使用加密传输认证信息和传输

JSch - Java实现的SFTP(文件上传详解篇)(转)

JSch是Java Secure Channel的缩写.JSch是一个SSH2的纯Java实现.它允许你连接到一个SSH服务器,并且可以使用端口转发,X11转发,文件传输等,当然你也可以集成它的功能到你自己的应用程序. 本文只介绍如何使用JSch实现的SFTP功能. SFTP是Secure File Transfer Protocol的缩写,安全文件传送协议.可以为传输文件提供一种安全的加密方法.SFTP 为 SSH的一部份,是一种传输文件到服务器的安全方式.SFTP是使用加密传输认证信息和传输

Java使用Commons-FileUpload组件实现文件上传最佳方案

学习的目标 使用commons-fileupload实现文件上传 使用commons-fileupload封装文件上传工具类 什么是commons-fileupload? The CommonsFileUploadpackage makes it easy to add robust, high-performance, file upload capability to your servlets and web applications. FileUpload parses HTTP req