使用AppleScript自动单击对话框按钮

使用AppleScript自动单击对话框按钮,applescript,Applescript,我想使用AppleScript通过Safari自动登录web 当我打开一个URL并给出用户名和密码时,如果这是第一次或尚未保存密码,它将显示消息:“您想保存此密码吗?” 我想用AppleScript选择“不是现在”。我该怎么做 这是我目前的代码: tell application "Safari" open location "http://www.amazon.com" activate

我想使用AppleScript通过Safari自动登录web

当我打开一个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

:

如果已从系统首选项启用辅助设备访问,则可以使用系统事件:

on enabledGUIScripting()
    do shell script "sudo touch /private/var/db/.AccessibilityAPIEnabled" password "1" with     administrator privileges
end enabledGUIScripting()
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
然后:


如果已从系统首选项启用辅助设备访问,则可以使用系统事件:

on enabledGUIScripting()
    do shell script "sudo touch /private/var/db/.AccessibilityAPIEnabled" password "1" with     administrator privileges
end enabledGUIScripting()
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

谢谢你的帮助。正如您的回答:[已从系统首选项启用辅助设备的访问]。我还编写了一个脚本来自动启用该功能,但我们无法处理输入用户名、密码或“SecurityAgent”的自动单击解锁(因为尚未启用对辅助设备的访问)完成:on enabledGUIScripting()do shell script“sudo touch/private/var/db/.accessibilityappeabled”password“1”如果具有管理员权限end EnabledGuisscripting,这对safari以外的东西有效吗?illustrator中的对话框也有同样的问题。如果Lauri Ranta的答案是您问题的解决方案,请单击答案旁边的绿色复选标记以接受它。