2016-01-11 5 views
0

Я загружаю файлы на сайт с использованием Selenium 2. Я могу загрузить один файл, указав путь загрузки, но хочу загрузить все файлы в папку. Вот мой код:Загрузка всех файлов в папку с загрузкой файлов Windows - Selenium

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 - Воображение Land EP» папка, которая содержит все файлы, я хочу, чтобы загрузить.

Я попробовал «Cooley - Imagination Land EP \ *» и еще несколько вещей, но это, похоже, не работает.

ответ

1

Вам нужно будет указать путь для каждого файла в папке не только пути папки. Вы можете попробовать что-то вроде этого:

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 вам нужно разграничить их с помощью новой строки.

Смежные вопросы