1 votos

document.querySelector con AppleScript / Safari

Necesito un script para abrir cada pestaña en safari cuando llego a "valueIneed" de un sitio Web interno

Aquí le damos la etiqueta HTML

Esto es lo que he intentado esto pero esto no está

para obtener más información lo tiene podría tener múltiples instancia de la misma etiqueta y tengo que abrir cada uno en una nueva pestaña, o mejor aún haga clic en ellos uno tras uno

1voto

siva Puntos 23

Usted no ha cerrado ninguna cita o corchetes. Se necesitan los siguientes cuatro caracteres.

var theStatus = document.querySelector('class[details="(valueIneed)"]')
                                                                   ^^^^

Esto ahora es sintácticamente correcta JavaScript. Yo todavía duda de que va a hacer lo que usted necesita, pero sin ver el árbol DOM de la página en la que estamos ejecutando este y una completa descripción del problema que no puedo decir seguro.

Dado que la actualización a su pregunta con un fragmento de código HTML, el código que estás tratando de no trabajo. Para obtener el código HTML interno del elemento, utilice el siguiente JavaScript:

document.querySelector("td.orderDetails .details").innerHTML;

1voto

qarma Puntos 71
property tmp : "~/Desktop/safarihtml.html"

set htmls to {}

tell application "Safari" to tell window 1 to if exists then ¬
    set htmls to do JavaScript ¬
        "Array.from(document" & ¬
        "          .getElementsByClassName('details'))" & ¬
        "     .map(x=>x.innerHTML);" in current tab

repeat with html in htmls
    newTabWithHTML(html)
end repeat

on newTabWithHTML(html)
    local html

    set furl to URL of tmpfile()

    set eof of (tmpfile() as alias) to 0
    write html to (tmpfile() as alias) as «class utf8»

    tell application "Safari" to tell ¬
        (a reference to window 1)
        if not (exists) then make new document

        set current tab to make new ¬
            tab with properties ¬
            {URL:furl}

        repeat until name of current tab ¬
            ≠ "Untitled"
            delay 1
        end repeat
    end tell

    delete tmpfile()
end newTabWithHTML


on tmpfile()
    tell application "System Events"
        set f to a reference to the file tmp
        if not (exists f) then (make new file ¬
            with properties {name:tmp})

        return f
    end tell
end tmpfile

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