Estoy usando AppleScript con Google Chrome para automatizar un proceso tedioso en un sitio web. En ciertas condiciones, el sitio web tiene una ventana emergente de alerta para notificar al usuario sobre un problema. Esto evita que el resto del script automator se complete. Necesito detectar esta ventana emergente, registrarla en un archivo (ya tengo esto resuelto) y hacer clic en el botón Aceptar para continuar. El código que tengo actualmente se ve así:
on run args
repeat with catNum in args
tell application "Google Chrome"
set myurl to "http://database.com/whatever"
open location myurl
delay 1
tell active tab of window 1
-- Click the button that needs to be clicked
execute javascript "document.getElementById('verbatimCoordinatesDiv').getElementsByTagName('div')[0].getElementsByTagName('a')[0].click()"
-- What I need to do:
-- If (popup alert) then
-- do shell script "echo Issue with " & catNum & " > templog.txt"
-- Click ok button on popup
-- else
-- This clicks the save button
execute javascript "document.getElementById('editButtonDiv').getElementsByTagName('input')[0].click()"
-- end if
delay 1
end tell
delay 1
-- Close the tab
delete tab (active tab index of window 1) of window 1
end tell
end repeat
end run
Hasta ahora, lo que tengo funciona bien cuando no hay un mensaje emergente, sin embargo, requiere una intervención manual cuando se activa una ventana emergente. A continuación se muestra una captura de pantalla de la ventana emergente y la ventana del Inspector de accesibilidad.
EDITAR:Aquíhayunaversiónsimplificadadeloqueestoytratandodehacer,peroenunsitiopúblico.ParecequelaalertadejavascriptestáimpidiendoquealgosucedaenelnavegadorhastaquesehagaclicenAceptarmanualmente.
tellapplication"Google Chrome"
-- Go to the website with the javascript button
set myurl to "http://t4t5.github.io/sweetalert/"
open location myurl
delay 1
tell active tab of window 1
-- Click the normal javascript button on the page
execute javascript "document.getElementsByTagName('button')[1].click()"
end tell
-- Delete the tab when done
delete tab (active tab index of window 1) of window 1
end tell