使用Windows文件上传上传文件夹中的所有文件 - Selenium

时间:2016-01-11 22:05:55

标签: java selenium file-upload webdriver

我使用Selenium 2将文件上传到网站。我可以通过指定上传路径上传一个文件,但我想上传文件夹中的所有文件。这是我的代码:

if (driver.findElements(By.xpath("//input[@type='file']")).size() > 0) {
    driver.findElement(By.xpath("//input[@type='file']")).sendKeys("C:\\Users\\Bernard\\Dropbox\\Demo Submission\\Submissions\\Cooley - Imagination Land EP\\Cooley - Imagination Land.mp3");
}

“Cooley - Imagination Land EP”是包含我要上传的所有文件的文件夹。

我尝试了“Cooley - Imagination Land EP \ *”以及其他一些事情,但这似乎不起作用。

1 个答案:

答案 0 :(得分:2)

您需要为文件夹中的每个文件设置路径,而不仅仅是文件夹的路径。你可以尝试这样的事情:

File folder = new File("C:\\Users\\Bernard\\Dropbox\\Demo Submission\\Submissions\\Cooley - Imagination Land EP");
File[] files = folder.listFiles();
String filesList = "";
for(int i = 0; i < files.length;i++){
    filesList += (i != 0 ?"\n":"") + files[i].getAbsolutePath();
}
driver.findElement(By.xpath("//input[@type='file']")).sendKeys(filesList);

另外,我认为这取决于您使用的驱动器类型。对于IE,您需要用引号括起路径并用空格分隔它们,对于Chrome,您需要用新行来分隔它们。