UI 自动化中如何处理上传文件事件

在UI自动化中,我们经常会遇到上传文件操作。处理上传事件是一个比较麻烦的操作,因为点击上传控件会弹出Windows窗口供用户选择文件,但是Windows窗口是浏览器之外的组件,所以selenium本身无法处理这个windows窗口。这里给大家几个处理思路,我们先看一下下面这个HTML。

test

用notepad++ 打开,将它存成一个 autotest.html文件,打开之后,只有一个上传按钮,我们来看一下怎么处理上传事件。

1

直接调用selenium自带的sendkeys进行操作,将需要上传的文件路径直接传递进上传控件。

2.import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
/**

  • Description:
  • Author: ChrisMa
  • Date: 2019-05-15
    */
    public class testupload2 {
    public static void main(String ags[]) throws InterruptedException {
    //初始化webdriver
    WebDriver driver = new ChromeDriver();
    //打开本地html
    driver.get(“file:///D:/UI/autotest1.html”);
    // 将文件所在路径传递给上传文件控件
    driver.findElement(By.name(“file”)).sendKeys(“D:\text.txt”);
    // 等待看到结果
    Thread.sleep(10000);
    //关闭webdriver
    driver.quit();
    }
    }

这种方案可以解决大部分的上传操作,可是对于一些上传框禁止输入的就无法操作了,这时候我们就要考虑其他方案。

2

针对无法输入的,我们可以考虑采用AutoIT来进行上传。

AutoIt目前最新是v3版本,这是一个使用类似BASIC脚本语言的免费软件,它设计用于Windows GUI(图形用户界面)中进行自动化操作。它利用模拟键盘按键,鼠标移动和窗口/控件的组合来实现自动化任务。

官方网站:https://www.autoitscript.com/site/

从网站上下载AutoIt并安装,安装完成在菜单中会看到下图的目录:

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值