代码改变世界

使用 sendKeys(keysToSend) 批量上传文件

2017-02-09 20:50  清风软件测试开发  阅读(1798)  评论(1编辑  收藏  举报

未经允许,禁止转载!!!

在selenium里面处理文件上传的时候可以使用sendKeys(keysToSend) 上传文件

例如: element.sendKeys(“C:\\test\\upload\\test1.txt”)

但是不能使用这种方法一次性批量上传文件,如下面的做法是错误的!

element.sendKeys(“C:\\test\\upload\\test1.txt”, “C:\\test\\upload\\test2.txt”...)

那么如何批量上传文件呢?其实可以循环使用sendKeys(keysToSend) 个方法

如下面的代码就实现了批量上传文件

 /** 
 * 
 * @Description: 在百度云上测试文件批量上传功能,主要是通过循环的方式去做单一
 * 的上传动作 , 登陆过程已经去掉
 */ 
 @Test 
 public void test_mutilUploadFile() throws Exception { 
 System.out.println("upload start"); 
         // 获取上传控件元素
 WebElement uploadButton = driver.findElement(By.name("html5uploader")); 
 // 构建上传文件路径,将需要上传的文件添加到 CharSequence 数组
 CharSequence[] files = new CharSequence[5]; 
         files[0] = "C:\\test\\test1.txt"; 
         files[1] = "C:\\test\\test2.txt"; 
         files[2] = "C:\\test\\test3.txt"; 
         files[3] = "C:\\test\\test4.txt"; 
         files[4] = "C:\\test\\test5.txt"; 
         // 循环列出每支需要上传的文件路径,做单一上传动作
         for(CharSequence file: files){ 
 uploadButton.sendKeys(file); 
         } 
         Thread.sleep(2000); 
 System.out.println("upload end"); 
     }

当执行结束后,效果如下图 :