2 votos

Uso de Javascript | Applescript para hacer clic en el botón en Safari

Me doy cuenta de que hay varios hilos sobre esto y que todos son muy específicos de cierta página web . Mi experiencia es en Python, no Javascript o Applescript, y estoy confundido en exactamente cómo lograr esta acción.

He visto varios scripts haciendo esta acción, a saber:

tell application "Safari"

activate

do JavaScript "document.forms['search']['order_list_search_batch'].click()"

end tell

¿Cuál es el mejor método para actuar en este sentido?

Estoy confundido sobre lo que va en el medio "document.forms[WHATGOESHERE?].click()"

Estoy tratando de hacer clic en el botón Proceed en http://rna.tbi.univie.ac.at/cgi-bin/RNAfold.cgi .

Fui a "Inspeccionar el elemento" en el botón Proceder y obtuve este código:

<input style="cursor: pointer;" value="" name="proceed" class="proceed" onmouseover="this.style.cursor=&quot;pointer&quot;" type="submit">

¿Cómo puedo saber qué poner en script</strkeep><strkeep> para hacer clic en este botón en función de los resultados de Inspección de elementos? Quiero entenderlo para poder utilizar este método en más de un caso. No hay un enlace href al que vaya.

enter image description here

El código actual no funciona

tell application "Safari" to activate
open location "http://rna.tbi.univie.ac.at/cgi-bin/RNAfold.cgi"
delay 3
tell application "Safari" to do JavaScript "document.forms[0].elements[document.forms[0].elements.length-1].click()"

5voto

Malik hassan Puntos 16

Por un momento pensé que estabas preguntando lo mismo pregunta de nuevo como la última vez.

Pero date cuenta de que ahora quieres saber cómo usar Inspect Element para construir tu propio código.

En el ejemplo que pones: document.forms[WHATGOESHERE?].click()

El WHATGOESHERE sería el nombre del formulario.

i.e document.forms['theFormName'].click()

Su sitio web, en su sabiduría, ha llamado al formulario ' formulario '

<form method="post" action="/cgi-bin/RNAfold.cgi" enctype="multipart/form-data" name="form"> <input type="hidden" name="PAGE" value="2">

i.e document.forms['form'].click()

Pero esto no haría clic en el entrada botón

Puede utilizar la función submit() punto sintaxis'd al final :

document.forms['form'].submit()

Safari Applescript : do JavaScript "document.forms['form'].submit()"


También

En el código que le proporcioné en su último pregunta . He utilizado:

tell document 1

        do JavaScript "document.getElementsByClassName('proceed')[0].click()"

    end tell

Esto utiliza la clase Nombre Proceder del elemento de entrada de formularios que se ve aquí: clase= " proceder"

<input value="" name="proceed" type="submit" class="proceed" onmouseover="this.style.cursor=&quot;pointer&quot;" style="cursor: pointer;">

El getElementsByClassName('proceed')[0] hace exactamente lo que dice.

Es consigue el Elementos Por Nombre de la clase ' Proceder '.

El [0] significa que le dará el primer elemento en sus resultados del Array que sería devuelto. El array se cuenta de 0 a 9. Así que el primer elemento sería el elemento 0.


Un buen lugar para obtener ejemplos de trabajo e información sobre Javascript es en www.w3schools.com En la página principal tienen enlaces a sus ejemplos y tutoriales de HTML y Javascript. Los elementos del HTML Dom y las funciones de Javascript se enumeran para facilitar el acceso.

3voto

Satanicpuppy Puntos 4902

A pesar de que este sitio web tiene un código de mierda (muy pocas identificaciones), algo como :

tell application "Safari"
    activate
    open location "http://rna.tbi.univie.ac.at/cgi-bin/RNAfold.cgi"
    delay 3
    do JavaScript "document.forms['form'].submit()" in current tab of window 1
end tell

debería funcionar.

Busca el último elemento del primer formulario de la página.


Para que lo sepas:

document.forms['search']['order_list_search_batch'].click()

Esta línea hace lo siguiente :

  • Se ve en la página web
  • Para un formulario con id="search"
  • Dentro de ese formulario, busca un nodo hijo con id=order_list_search_batch .
  • Una vez encontrado este objeto, realiza un clic sobre él.

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