2013-10-23 4 views
1

Я хочу использовать AppleScript для автоматического входа в систему для веб-сайта Safari.Автоматически нажмите кнопку диалога с помощью AppleScript

Когда я открываю URL-адрес и указываю имя пользователя и пароль, если он первый раз или еще не сохранил пароль, он покажет сообщение: «Вы хотите сохранить этот пароль?».

Я хочу использовать AppleScript для выбора «Не сейчас». Как я могу это сделать?

Вот мой текущий код:

tell application "Safari"      
     open location "http://www.amazon.com"    
     activate     
end tell       

if page_loaded(60) then      
     say "Page Loaded"    

     tell application "Safari"    
       set loginURL to do JavaScript "document.getElementById('nav-your-account').getAttribute('href')" in document 1  
       open location loginURL  
     end tell     

else       
     say "Page Failed to load or Safari didn't open"    
end if      

if page_loaded(60) then      
     say "Page Loaded"    

     tell application "Safari"    
       do JavaScript "document.getElementById('ap_email').value = 'mritjp'; document.getElementById('ap_password').value = 'mritjp'; document.forms['signIn'].submit();" in document 1  
       ---HOW TO CONTROL TO CHOOSE "Not Now" in message "Would you like to save this password?" of safari 
       activate   
       delay 2  
     end tell     
else       
     say "Page Failed to load or Safari didn't open"    
end if      



on page_loaded(timeout_value) -- in seconds      
     delay 1    
     repeat with i from 1 to timeout_value    
       tell application "Safari"  
         if name of current tab of window 1 is not "Loading" then exit repeat 
       end tell   
       delay 1  
     end repeat    
     if i is timeout_value then return false    
     tell application "Safari"    
       repeat until (do JavaScript "document.readyState" in document 1) is "complete"  
         delay 0.5 
       end repeat  
     end tell     
     return true    
end page_loaded 

Fixed by comment of Lauri Ranta:

Если доступ для вспомогательных устройств был включен в настройках системы, вы можете использовать системные события:

on enabledGUIScripting() 
    do shell script "sudo touch /private/var/db/.AccessibilityAPIEnabled" password "1" with  administrator privileges 
end enabledGUIScripting() 

Затем:

tell application "System Events" to tell process "Safari" 
    click button 3 of sheet 1 of window 1 
end tell 
+0

Если ответ Лаури RANTA было решением вашей проблемы, нажмите на зеленую галочку рядом с ответом принять это. –

ответ

2

Если доступ для вспомогательных устройств был включен в настройках системы, вы можете использовать системные события:

tell application "Safari" 
    do JavaScript "document.getElementById('login_button_id').click()" in document 1 
end tell 
delay 1 
tell application "System Events" to tell process "Safari" 
    click button 3 of sheet 1 of window 1 
end tell 
+0

Благодарим за помощь. В качестве вашего ответа: [доступ для вспомогательных устройств был включен из системных настроек]. Я также пишу сценарий для автоматического включения, но мы не можем обрабатывать ввод имени пользователя, пароля или автоматического нажатия на «Разблокировать» для «SecurityAgent» (поскольку доступ для вспомогательных устройств не активирован) –

+0

Выполнено: on enabledGUIScripting() \t do shell script "sudo touch /private/var/db/.AccessibilityAPIEnabled" password "1" с правами администратора end enabledGUIScripting –

+0

Будет ли это работать на другие вещи, кроме сафари? У меня такая же проблема с диалоговым окном в иллюстраторе. –

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