I have a bunch of files I want to upload to web page. Unfortunately the web form for uploading only allows me to specify one at a time (it spawns and 'open file' dialog). Is there an easy way to do this with some combination of automator/applescirpt?
I followed @drevickos very good instructions. Didn't manage it with Safari, but Firefox works perfectly.
Below the downloads for the Service file
UploadFilesWebForm and the Automator file
With these files, I managed to upload multiple files to SAS on AWS. For any other website, you should adjust:
Watch me doprocedure to fit your web form in the
delayneeded for upload specified in the
Ok, I managed to get automator to do what I wanted, with a little help from
I did it with a 'workflow' and a "files and folders" in "finder" service. The service calls the workflow with each of the selected file names.
Here's what the service does:
Run Shell Scriptwith Pass input
to stdinand the script
grep -o '[^/]*$'-- the service receives the full paths of the files selected in the finder, I only want the file names, so this removes the path bit.
firefox-- this seems to be the best way to switch applications (even if they're already open..)
1at a time using
1workflow, with "wait for workflow to finish" ticked.
in batches mode appears to process text input line by line. Each line output by
grep contains a file name, so the second workflow is called once with each file name. Note that the list of file names is passed through
Here's what the workflow does:
Copy to Clipboard
- a recorded
Watch Me Do:
- a series of clicks to get the 'upload file' dialog up
- a click to focus it's search box,\
- paste (the file name)
- select the top found file
- click 'open'
- a series of clicks to upload the file and return the page to the same state in which we started
There were a few hiccups along the way.
- First I used
command-Vto paste, but for some reason that was unreliable, so I ended up using paste from the edit menu instead.
- I had to be careful to leave enough time between clicks for worst-case rendering of html pages and opening dialogs etc..
- When the flow crashed (usually by getting out of sync with the browser), I often ended up with the browser stuck with the 'upload file' dialog open and unresponsive. To get it responsive again, I found that moving it sufficed (ie: dragging it's title bar a bit).