Reputation: 111
I have an element with following HTML:
<input type="file" name="upload" value="[]" id="upload1" class="upload">
To the best of my understanding its value is an array/list and it's supposed to store uploaded files paths (multiple files are allowed).
I use following code to upload ONE file:
.FindElementById("upload1").SendKeys ("C:\file1.txt")
and it works just fine. However, i need to upload multiple files but I do not get how to populate the array with multiple filepaths using SendKeys
.
I use vba to automated data entry from within excel.
Upvotes: 3
Views: 5880
Reputation: 1
@undetected-selenium answer works for me but i used join() function instead of string concatenation to solve the File not found exception.
file_paths = [] #array of file paths
combined_paths = "\n".join(file_paths)
driver.FindElementById("upload1").send_keys(combined_paths)
Upvotes: 0
Reputation: 193088
To upload multiple files you can construct the character string adding all the absolute path of the files seperated by \n
as follows:
.FindElementById("upload1").SendKeys("C:/TextFile1.txt \n C:/TextFile2.txt \n C:/TextFile3.txt");
You can find a couple of relevant detailed discussions in:
Upvotes: 6