1 votos

Cómo mover/desplazar el ratón (no hacer clic) sobre un botón en Safari utilizando Applescript

¿Puede alguien decirme cómo escribir un Applescript que pueda mover o pasar el ratón sobre un botón en Safari? He hecho con éxito un Applescript que puede hacer clic en el botón, pero no sé cómo hacer que el ratón sólo se mueven allí, no hacer clic. Porque necesito descargar unas imágenes de un sitio web que sólo aparecen cuando se pasa el ratón por encima de ese botón (no se puede hacer clic en ese botón).

El sitio web del que quiero obtener información (elemento HTML) al ejecutar el script: https://shopee.vn/Bút-line-đi-nét-chuyên-nghiệp-SAKURA-PIGMA-MICRON-12-size-(0.03-Brush)-BÁN-LẺ-i.22061868.886461468

Mi exitoso click-to-the-button Applescript (Este click a la segunda imagen de la izquierda):

tell application "Safari"
    do JavaScript "document.getElementsByClassName('_3ZDC1p')[2].click();" in document 1
end tell

o:

to clickClassName(theClassName, elementnum)
    tell application "Safari"
        do JavaScript "document.getElementsByClassName('" & theClassName & "')[" & elementnum & "].click();" in document 1  
    end tell
end clickClassName
clickClassName("_3ZDC1p", 2)

Entonces, ¿podríais decirme cómo pasar el ratón por encima del botón (pero sin hacer clic) de forma similar a script como estos de arriba? Fíjate que el botón "1.0 Graphic" en la página web de arriba está difuminado, lo que significa que no se puede pulsar, pero una vez que pasas el ratón por encima, aparece la imagen de la izquierda, quiero conseguir esa imagen con todas mis fuerzas. La url de esa imagen sólo aparece cuando paso el cursor del ratón por encima de ese botón "1.0 Graphic". Ya se como hacer script descargando la imagen desde la URL. Sólo necesito tener un script que pueda hacer pasar el ratón por encima de ese botón ("1.0 Graphic") para que se vea la imagen para coger la url. ¡¡¡Gracias!!!

0voto

user3439894 Puntos 5883

No conozco una forma de utilizar la vainilla básica AppleScript por sí mismo, a mover el cursor del ratón; sin embargo, hay utilidades de terceros que pueden hacerlo, siendo uno de ellos Haga clic en Sin embargo, también hay que poder decirle dónde moverlo y eso tiene sus propios problemas.

En otro orden de cosas, mirando la página web del URL en su OP, veo que mirando el HTML a la elemento objetivo Por ejemplo "document.getElementsByClassName('_3ZDC1p')[2].innerHTML;" hay un URL para el imagen .

¿Por qué no conseguir el HTML y lo analiza para obtener el URL y descargarlo directamente en su sistema?

Lo siguiente ejemplo AppleScript código hace precisamente eso:

--  # Get the HTML for the target element.

tell application "Safari" to ¬
    tell front document to ¬
        set innerHTML to do JavaScript ¬
            "document.getElementsByClassName('_3ZDC1p')[2].innerHTML;"

--  # Parse 'innerHTML' to get the URL.

set text item delimiters to {"(", ")"}
set theURL to second text item of innerHTML
set text item delimiters to {}

--  # Set the pathfilename for the saved image,
--  # e.g,: /Users/me/Pictures/1591893975.jpeg
--  # Name is based on seconds since Epoch.

set saveToFileName to POSIX path of ¬
    (path to pictures folder) & ¬
    (do shell script "date +%s")

--  # Define the commands necessary to accomplish
--  # the download base on the OP's URL example.

set shellCMD to "curl -ks " & theURL's quoted form & " -o " & saveToFileName's quoted form & ¬
    "; mv -n " & saveToFileName's quoted form & space & saveToFileName's quoted form & ¬
    ".$(file " & saveToFileName's quoted form & " | awk -F ': | ' '{print tolower($2)}')"

--  # Download the file.

do shell script shellCMD
  • Nota: Este ejemplo AppleScript código se basa únicamente en el HTML de la elemento objetivo y lo necesario para automatizar el proceso una vez que la página web de destino está disponible y es el Safari ventana.

Nota: El <em>ejemplo </em><strong>AppleScript </strong><em>código </em>es sólo eso y no contiene ningún <em>tratamiento de errores </em>según corresponda. Corresponde al usuario añadir cualquier <em>tratamiento de errores </em>como sea apropiado, necesario o deseado. Eche un vistazo a la <a href="https://developer.apple.com/library/archive/documentation/AppleScript/Conceptual/AppleScriptLangGuide/reference/ASLR_control_statements.html#//apple_ref/doc/uid/TP40000983-CH6g-129232" rel="nofollow noreferrer"><strong>intente </strong></a><em>declaración </em>y <a href="https://developer.apple.com/library/archive/documentation/AppleScript/Conceptual/AppleScriptLangGuide/reference/ASLR_control_statements.html#//apple_ref/doc/uid/TP40000983-CH6g-129657" rel="nofollow noreferrer"><strong>error </strong></a><em>declaración </em>en el <a href="https://developer.apple.com/library/archive/documentation/AppleScript/Conceptual/AppleScriptLangGuide/introduction/ASLR_intro.html" rel="nofollow noreferrer"><strong>Guía del lenguaje AppleScript </strong></a>. Véase también, <a href="https://developer.apple.com/library/archive/documentation/AppleScript/Conceptual/AppleScriptLangGuide/reference/ASLR_error_xmpls.html#//apple_ref/doc/uid/TP40000983-CH221-SW1" rel="nofollow noreferrer"><strong>Trabajar con errores </strong></a>. Además, el uso de la <a href="https://developer.apple.com/library/archive/documentation/AppleScript/Conceptual/AppleScriptLangGuide/reference/ASLR_cmds.html#//apple_ref/doc/uid/TP40000983-CH216-SW10" rel="nofollow noreferrer"><strong>retraso </strong></a><em>comando </em>puede ser necesario entre eventos cuando sea apropiado, por ejemplo <code>delay 0.5</code> con el <em>valor </em>de la <em>retraso </em>ajustado apropiadamente.

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