AppleScript JavaScript getElements

Tengo mi script parcialmente funcionando. Estoy usando AppleScript para secuenciar interacciones con Chrome.

set textToSave to "Text"

tell application "Google Chrome"
    execute front window's tab 1 javascript "document.getElementsByName('0.9.7.1.5.0.4.1.3')[0].click();"
    delay 0.1
  1. Si ingreso un textToSave de varias líneas, por ejemplo

    " here
    blabla 
    
    bla"
    

    entonces no tengo texto y --> valor faltante

  2. Necesito configurar un campo emergente antes de este script, aquí está el HTML para ello

    <select id="PaymentEnSelection" name="0.9.7.1.5.9.4.1.9"> <option selected="selected" value="0">Enabled</option> <option value="1">Disabled</option></select>
    

    y otro mas:

    <select name="0.9.7.1.9.0.4.1.9.0.2.1.3.7.3.9.3.1"><option value="NoSelectionString">Please select a reason</option>
    <option value="0">R1</option>
    <option value="1">&amp; Review </option>
    <option value="2">Chart</option>
    <option value="3">R3</option>
    

Respuestas (2)

El texto de varias líneas se puede lograr usando cualquiera de los siguientes métodos:

  • Separe el texto por nuevas líneas, con la primera cita y la última cita encapsulando el contenido.

  • Utilizar \ncomo nueva línea.

    set myvar to "hello\nanother\n\nfinal"
    

Puede establecer el valor de un elemento de selección usando el siguiente JavaScript

document.getElementById("PaymentEnSelection").value = 1

El valor dado es uno de los atributos de valor en los elementos de opción que desea seleccionar.

el primer método es el que suelo usar, pero no funciona en este caso, probé \n en su lugar, pero el mismo problema, por alguna razón, solo funciona cuando ingreso una línea (o manual de varias líneas) para el documento. getElementById, ¿Puedo hacer eso con mi nombre en su lugar? Intenté su código de todos modos pero tuve un error, también probé con ejecutar la pestaña 1 de la ventana frontal javascript "document.getElementByName ('0.3.8.1.5.0.4.1.5.0.6.1.3.7.3.1.3.1') .value = 1" pero valor que falta
@Kevin Sí, puede usar cualquier método que devuelva un elemento, por lo que cualquiera de los métodos 'getElement...' funcionará. No existe tal método 'getElementByName', necesita 'getElementsByName' e indexar la matriz. Use la consola JS en Chrome para depurar su JS antes de ejecutar el JS en AppleScript.

Lo encuentro (para la segunda pregunta)

execute front window's tab 1 javascript ¬
        "document.getElementsByName('namehere')[0].selectedIndex=1"

el valor del índice seleccionado es lo que desee seleccionar en el menú desplegable.