2 votos

¿Puede la automatización usando AppleScript copiar texto de una página web en una aplicación de editor de texto?

Como un primer intento en AppleScript estoy buscando automatizar un comando de búsqueda y algunas acciones de seguimiento que normalmente sería la entrada del usuario.

En última instancia, quiero automatizar la adición de letras a mi biblioteca de iTunes. Mi primer reto es decirle a Safari que busque una frase en una página web, que haga clic en el enlace y que copie el texto sin formato de la página que aparece en el portapapeles y lo pegue en el Editor de texto.

No sé cómo decirle a Safari que command + F , pegar una frase del portapapeles y, a continuación, hacer "clic" en el enlace resaltado.

No necesito un script, sino ayuda para empezar como mínimo

¿Cómo podría hacer una o más partes de esta automatización?

3voto

qarma Puntos 71

¡Tu primer AppleScript! Increíble... Y un proyecto ambicioso para empezar, pero puedo ver su valor.

Mi respuesta no escribirá el script por ti, pero te daré consejos sobre cómo enfocar tu problema de forma diferente y conseguir lo que quieres un poco más fácilmente.

Para responder primero a sus preguntas específicas:

Cómo decirle a Safari que haga Cmd-F

    tell application "Safari" to activate

    tell application "System Events" to keystroke "f" using command down

Pegar una frase del portapapeles

Envía un Cmd-V. Puede que necesites un pequeño retardo entre los dos comandos de las teclas.

Haga "clic" en el enlace resaltado

No se puede. No podrás identificar lo que está resaltado a través de una búsqueda Cmd-F con gran facilidad (posiblemente a través de scripts de GUI, pero eso será un lío). Volveré sobre esto en breve.

Un enfoque diferente

Trabajando hacia atrás, supongamos que has obtenido el texto que necesitas pegar en TextEdit . No lo pegues. Establece el contenido de un nuevo TextEdit al contenido del portapapeles:

    tell application "TextEdit" to set text of (make document) to the clipboard

Para fijar en el portapapeles el contenido de una página web de Safari, utilice este comando:

    tell application "Safari" to set the clipboard to  ¬
        (text of current tab of front window) as string

Y esto nos lleva de nuevo a hacer clic en el enlace...

Si literalmente quiere hacer clic en un enlace de una página web, un método sería asegurarse de que Permitir Javascript desde los eventos de Apple se comprueba en la sección de Safari Desarrollar y ejecutar un do JavaScript para elegir el enlace que contiene el elemento de búsqueda pertinente y hacer clic en él:

    tell application "Safari" to tell document 1 to do JavaScript ¬
        "Array.from(document.links).find(a => a.href.includes(\"cjk\")).click()"

Esto sólo encuentra la primera instancia del tiempo de búsqueda, lo que he deducido que es suficiente dado que su método de hacer una búsqueda Cmd+F parecía contentarse con aceptar la primera ocurrencia como la única de importancia.

Sin embargo, creo que todo el proceso podría agilizarse y hacerse mucho más sólido utilizando Automatizador para ayudarnos. Puede extraer todas las URLs directamente de una página web (todo lo que tienes que hacer es darle la URL de la página web en cuestión). Luego puede filtrar estas URLs para buscar un texto específico. Una vez que tengas la URL que deseas, en lugar de hacer clic en ella Automatizador puede descargar su contenido como texto e insertarlo directamente en un nuevo TextEdit documento. Creo que no se necesitaría casi ningún AppleScript, aunque se puede complementar con algo de AppleScript para ajustar las cosas aquí y allá según sea necesario.

Sin su página web en cuestión, no puedo diseñar el flujo de trabajo específico para su aplicación. Sin embargo, eso también te privaría de la alegría de hacerlo tú mismo. Pero utilizando este Intercambio de pilas como ejemplo, el siguiente flujo de trabajo aísla la URL de su perfil de usuario (cuyo enlace se encuentra en la parte inferior de la pregunta que hizo), descarga el texto de su perfil y lo convierte en un nuevo TextEdit documento:

enter image description here

Esperemos que esto sea suficiente para que estés en camino de lograr tu objetivo. Si necesitas alguna aclaración, deja un comentario y te responderé cuando pueda.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X