2017-01-27 8 views
0

(Первый раз с AppleScript ...) Я пытаюсь загружать файлы из локальной папки на сервер с помощью одной загруженной формы (унаследованный сервер) программное обеспечение за DDos стены, никакого контроля над ним)AppleScript Automation - Массовая загрузка файлов в папку в одну загружаемую форму

Как я понимаю:

  • я могу Переберите каждый файл в файловой системе.
  • С каждым файлом: Invoke «сказать» Сафари»
  • Invoke JavaScript для„кнопки мыши“по идентификатору диалог загрузки
  • файла, выберите файл для загрузки

Я (?) возникли некоторые проблемы с синтаксисом в осуществлении этого ...

(Кроме того, если это не/лучший подход прав, пожалуйста, предоставьте лучше один ниже!)

 
on run 
    tell application "Finder" 
     set mlist to (every file of folder "Macintosh HD:Users:username:filestouploadfolder") as alias list 

     repeat with this_file in mlist 

      tell application "Safari" 
       activate 

       do JavaScript "document.getElementById('selectToOpenFileDialog').click();" in document 1 
       choose file this_file 

      end tell 
     end repeat 

    end tell 
    return 0 
end run 

ответ

0

Взломанное решение, хотя оно может быть более элегантным

 
on run 
    tell application "Finder" 
     set mfolder to "Macintosh HD:Users:yosun:png:" 
     set myFiles to name of every file of folder mfolder 
    end tell 

    repeat with aFile in myFiles 

     tell application "Safari" 
      activate 
      delay 1 
      do JavaScript "document.getElementById('addDeviceTargetUserView').click();" in document 1 
      delay 1 
      do JavaScript "document.getElementById('targetDimension').value=10;" in document 1 
      do JavaScript "document.getElementById('targetImgFile').click();" in document 1 


     end tell 

     tell application "System Events" 
      keystroke "G" using {command down, shift down} 
      delay 1 
      keystroke "~/png/" & aFile as string 
      delay 1 
      keystroke return 

      delay 1 
      keystroke return 

      delay 1 

     end tell 

     tell application "Safari" 
      activate 
      delay 1 
      do JavaScript "document.getElementById('AddDeviceTargetBtn').click();" in document 1 
     end tell 

     delay 10 

    end repeat 
end run