1 votos

Automator script para hacer clic en el botón de la página web genera el error "La operación no pudo completarse".

El AppleScript de abajo se supone que debe hacer clic en el primer elemento con la clase de lupa en una página web predefinida.

El script se ejecuta correctamente si se comenta la línea de JavaScript, do JavaScript "document.getElementsByClassName('magnifier')[0].click();"

Desde la consola de Chrome, esta línea de JavaScript se ejecuta con éxito.

Pero si se incluye la línea de JavaScript, se produce el siguiente error:

La acción "Ejecutar AppleScript" ha encontrado un error: "La operación no pudo completarse. (com.apple.Automator error -212.)"

¿Alguien tiene alguna idea de cuál puede ser el problema?

on run {input, parameters}

    set searchString to input as text

    set AppleScript's text item delimiters to space
    set searchString to text items of searchString
    set AppleScript's text item delimiters to ""
    set searchString to searchString as text

    tell application "Google Chrome"
        tell front window
            set curTabIndex to active tab index
            set URL of (make new tab) to ¬
                "https://www.yellowbridge.com/chinese/dictionary.php?searchMode=C&word=" & ¬
                searchString
            set active tab index to curTabIndex

            delay 2.0

            do JavaScript "document.getElementsByClassName('magnifier')[0].click();"
        end tell
    end tell

end run

2voto

user3439894 Puntos 5883

do JavaScript es para Safari . execute javascript es para Google Chrome Por ejemplo:

tell application "Google Chrome" to tell active tab of front window to ¬
    execute javascript "document.getElementsByClassName('magnifier')[0].click();"

Dicho esto, el lugar en el que se ha colocado en el script puede no estar donde realmente quieres.

Aquí hay algunos ejemplo AppleScript código correr en script Editor con Google Chrome abierto con al menos un ventana .

Espera que el objetivo URL para que termine de cargarse antes de hacer clic en la lupa y, a continuación, establece el active tab volver al original pestaña activa .

set input to {"桿"}

set searchString to input as text

set AppleScript's text item delimiters to space
set searchString to text items of searchString
set AppleScript's text item delimiters to ""
set searchString to searchString as text

tell application "Google Chrome"
    tell front window
        set curTabIndex to active tab index
        set URL of (make new tab) to ¬
            "https://www.yellowbridge.com/chinese/dictionary.php?searchMode=C&word=" & ¬
            searchString
        repeat until (loading of active tab is false)
            delay 1
        end repeat
        tell active tab to execute javascript ¬
            "document.getElementsByClassName('magnifier')[0].click();"
        delay 0.5
        set active tab index to curTabIndex
    end tell
end tell 

Actualización para abordar el comentario.

Las mismas condiciones mencionadas anteriormente se aplican a este ejemplo AppleScript código :

set input to {"桿"}

set searchString to input as text

set AppleScript's text item delimiters to space
set searchString to text items of searchString
set AppleScript's text item delimiters to ""
set searchString to searchString as text

tell application "Google Chrome"
    tell front window
        set curTabIndex to active tab index
        set URL of (make new tab) to ¬
            "https://www.yellowbridge.com/chinese/dictionary.php?searchMode=C&word=" & ¬
            searchString
        set active tab index to curTabIndex
        repeat until (loading of last tab is false)
            delay 1
        end repeat
        tell last tab to execute javascript ¬
            "document.getElementsByClassName('magnifier')[0].click();"
    end tell
end tell

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.

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