前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Selenium+java - 借助autolt完成上传文件操作

Selenium+java - 借助autolt完成上传文件操作

作者头像
软件测试君
发布2019-08-08 17:23:46
9050
发布2019-08-08 17:23:46
举报
文章被收录于专栏:测试人生测试人生
关注测试局| 会上瘾
写在前面

上传文件是每个自动化测试同学会遇到,而且可以说是面试必考的问题,标准控件我们一般用sendkeys()就能完成上传,但是我们的测试网站的上传控件一般为自己封装的,用传统的上传已经不好用了,也就是说用selenium的APi已经无法完成上传操作了,这时我们就要借用第三方工具Autolt来完成上传文件的操作。

准备工作

1、下载autolt 官网:https://www.autoitscript.com/site/autoit/downloads/,请自行下载 也可以百度下载绿色版,免安装,笔者就是绿色版,下面案例都以绿色版进行讲解 附百度网盘:链接: https://pan.baidu.com/s/1szmGK7wudsXKkH5xkEOnOQ 提取码: dysb 2、下载后解压到指定目录 3、被测网页HTML代码如下

代码语言:javascript
复制
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
<title>上传文件演示案例</title>
</head>
<body>
  <div class="row-fluid">
    <div class="span6 well">
    <h3>upload File</h3>
      <input id="upload" type="file" name="file" />
    </div>
  </div>
</body>
</html>

编写上传脚本 1、找到解压目录,双击AU3TOOL.exe,打开界面是写脚本用的

编译器界面

2、双击Au3Info.exe,打开定位工具界面

3、在文件中输入以下代码:注意括号内的参数 ,下一步中将会讲如何获取参数

代码语言:javascript
复制
ControlFocus("title1","","Edit1");
WinWait("[CLASS:#32770]","",10);
ControlSetText("title1","","Edit1","文件地址");
Sleep(2000);
ControlClick("title2","","Button1");

4、获取上一步中(前3行代码)中的参数

5、接下来是,最后一行代码中的title和button1

生成可执行程序

选择工具-->编译脚本

生成可执行文件如下:

自动化测试脚本调用upload.exe完成上传

具体代码如下:

代码语言:javascript
复制
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
import java.io.IOException;

/**
 * @author rongrong
 * 上传文件演示案例
 */
public class TestUpload {
    WebDriver driver;

    @BeforeClass
    public void beforeClass() {
        System.setProperty("webdriver.chrome.driver", "driver/chromedriver.exe");
        driver = new ChromeDriver();
    }

    @Test
    public void testUpload() {
        driver.get("file:///C:/Users/Administrator/Desktop/index.html");
        driver.manage().window().maximize();
        //选择文件
        driver.findElement(By.id("upload")).click();
        try {
            Runtime.getRuntime().exec("upload.exe");
        } catch (IOException e) {
            e.printStackTrace();
        }

    }

    @AfterClass
    public void afterClass() {
        driver.quit();
    }

}

效果如下:

小结

到此使用自动化调用autolt上传文件的案例演示结束,可能很多同学会纠结autolt语法不会写啥的,大可不必纠结,基本写完是一劳永逸的,不会在维护了,更多autolt的用法,有兴趣的同学可以自行去官网查看了解。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-08-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 软件测试君 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 写在前面
  • 准备工作
    • 编译器界面
    • 生成可执行程序
    • 自动化测试脚本调用upload.exe完成上传
    • 小结
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档