2016-02-11 3 views
0

Я пытаюсь создать скрипт, который будет загружать продукты для меня с помощью Applescript и Automator. Я получаю сообщение об ошибке, когда скрипт пытается использовать переменную для пути к файлу, поскольку он выполняет итерацию через мой список. Код ниже. Я также вношу содержимое папки из автомата в этот скрипт. Ошибка указана в строке 22. Кроме того, если вы могли бы помочь со вторым нажатием клавиши на строке 42, которая должна повторяться с повторением, но в другой папке. Заранее спасибо!Applescript keystroke Filepath variable

on run {input, parameters} 

repeat with theItem in input 
    tell application "Safari" 
     do JavaScript "document.getElementsByClassName('btn-com btn-info btn-large btn-icon-left add-product-button')[0].click();" in document 1 
     delay 1 
     do JavaScript "document.getElementsByClassName('btn-com btn-info btn-large btn-icon-left add-product-button')[0].click();" in document 1 
     delay 1 
     do JavaScript "document.getElementById('editor_commerce_product_short_description').innerHTML = 'All photos include full rights to the image and arrive via email. Comes in full 4K resolution. Image displayed is 1080P resolution. Orders may take up to 2 hours to be delivered. Watermarks will be removed!';" in document 1 
     delay 1 
     do JavaScript "document.getElementById('editor_commerce_product_price').value = '1.99';" in document 1 
     do JavaScript "document.getElementsByClassName('btn dropdown-toggle selectbox-display')[0].click();" in document 1 
     do JavaScript "document.getElementsByClassName('selectbox-content')[1].click();" in document 1 
     do JavaScript "document.getElementsByClassName('w-upload-input')[2].click();" in document 1 
    end tell 

    delay 1 

    tell application "System Events" 
     keystroke "G" using {command down, shift down} 
     delay 1 
     keystroke theItem 
     delay 1 
     keystroke return 

     delay 1 
     keystroke return 

     delay 1 

    end tell 

    delay 60 

    tell application "Safari" 
     do JavaScript "document.getElementsByClassName('w-upload-input')[1].click();" in document 1 
    end tell 

    tell application "System Events" 
     keystroke "G" using {command down, shift down} 
     delay 1 
     keystroke "~/Desktop/Test_Samples/Test_1.png" 
     delay 1 
     keystroke return 

     delay 1 
     keystroke return 

     delay 1 

    end tell 

    tell application "Safari" 
     do JavaScript "document.getElementsByClassName('save-product btn-com btn-success')[0].click();" in document 1 
    end tell 
end repeat 

return input 

конец бежать

ответ

0

Это зависит от класса input/theItem. Нажатие клавиш должно быть text, input может быть любым.

Попробуйте

keystroke (theItem as text) 

или

keystroke (POSIX path of theItem) 

И System Events эквивалент ⇧⌘G является

keystroke "g" using {command down, shift down} 
+0

Спасибо! Он работал, объединяя оба утверждения. нажатие клавиши (путь POSIX к элементу как текст) – Ankonian

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