Applescript llena la clase de campo de texto de Chrome

0
<div class="content" contenteditable="true" data-placeholder="Search Cases" data-maxlength="" data-div-placeholder-content="true">mytexthere</div>

No logro completar el texto de este campo de texto

aquí está mi script:

set textToSave to "Demo"
tell application "Google Chrome"
    tell tab 3 of window 1 to set theTextInfo to execute javascript "document.getElementsByClassName('search-field has-drop-down-menu component')[0].value=" & quoted form of textToSave
end tell

No tengo ningún error en AppleScript pero no hay resultados en Chrome ...

    
pregunta Kevin 05.05.2018 - 16:06

1 respuesta

1

De manera similar, con su pregunta aquí , el problema es que está tratando de hacer referencia a un elemento HTML con un nombre class que no existe.

El fragmento de código HTML que proporcionó contiene un único elemento <div> , cuyo atributo class tiene el valor "content" . Su JavaScript usa el método getElementsByClassName() con el argumento 'search-field has-drop-down-menu component' , que parece provenir de la nada.

Por lo tanto, para explicar brevemente sobre el método getElementsByClassName() , se utiliza para buscar dentro de una colección de elementos HTML todos los elementos que tienen un atributo class con el valor que especifique como argumento. Por ejemplo, getElementsByClassName('foo') coincidirá con <div class="foo">...</div> y <a class="foo bar">...</a> , pero no coincidirá con <p class="foobar" id="foo" name="foo">...</p> .

Para reemplazar mytexthere dentro del elemento <div> , puedes usar este método con el argumento "content" (el nombre de la clase del elemento <div> ); identifique el número de índice correcto si el método devuelve más de un elemento; luego configure la propiedad textContent al valor deseado:

    document.getElementsByClassName('content')[2].textContent='...';

donde [2] tendría que cambiarse al número de índice correcto de la lista de elementos devueltos por getElementsByClassName('content') .

Hay otros métodos de JavaScript que puedes usar, como querySelector() , que, para ser útil, requerirá que leas en selectores de CSS . Pero, una vez que esté familiarizado con estos, puede realizar algunas consultas de elementos muy potentes.

    
respondido por el CJK 05.05.2018 - 20:10

Lea otras preguntas en las etiquetas