Estoy usando AppleScript con Google Chrome para automatizar un proceso tedioso en un sitio web. En ciertas condiciones, el sitio web tiene una alerta emergente para notificar al usuario de un problema. Esto impide que el resto de la automator secuencia de comandos de finalización. Necesito detectar esta ventana emergente, el registro en un archivo (ya tengo esto resuelto), y haga clic en el botón aceptar para continuar. El código que tengo actualmente tiene este aspecto:
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 ningún mensaje emergente, no obstante, se requiere la intervención manual cuando una ventana está activa. A continuación se muestra una captura de pantalla de la ventana emergente y Accesibilidad de la ventana Inspector.
EDIT: Aquí es una versión reducida de lo que estoy tratando de hacer, pero en un sitio público. Parece como si la alerta de javascript es la prevención de cualquier cosa que suceda en el navegador hasta que ACEPTAR manualmente se hace clic.
tell application "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