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

Posted xiaobaibailongma

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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:UsersdelDesktop123.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 Firefoxfirefox.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:UsersdelDesktop123.exe");// 执行桌面的AutoIt封装的脚本
             

             
              Thread.sleep(10000);
             
        }catch (Exception e) 
        {
            e.printStackTrace();
        }finally 
        {
            driver.quit();
        
         }
   }
    

}

以上是关于Java+Selenium——AutoIt工具处理文件上传的主要内容,如果未能解决你的问题,请参考以下文章

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

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

[Selenium+Java] How to use AutoIT with Selenium

selenium2 python自动化测试之利用AutoIt工具实现本地文件上传

selenium使用autoit3处理windows控件

selenium+java利用AutoIT实现文件上传