背景
在做web自动化时,我们经常会碰到一些场景需要进行文件上传,而文件上传打开的窗口属于windows空格,通过Selenium是操作不了的,此篇文章给大家介绍几种实现方法
方法一:sendKeys
前提条件: 文件上传元素是input标签,并且type为file才可以使用此种方法
以我在本地的fileupload.html文件为例:
文件上传示例测试代码如下:
ChromeDriver driver = new ChromeDriver();
driver.get("D:\\fileupload.html");
Thread.sleep(2000);
driver.findElement(By.id("fu")).sendKeys("D:\\java_auto\\test.png");
此方法的核心在于元素是input类型,可以借由sendKeys方法去输入上传文件的路径即可
方法二:AutoIT
针对不是input类型的元素,我们可以使用第三方的自动化工具,比如:Auto,对windows控件元素进行操作
以下是其官网介绍:AutoIt v3 is a freeware BASIC-like scripting language designed for automating the Windows GUI and general scripting. It uses a combination of simulated keystrokes, mouse movement and window/control manipulation in order to automate task