1 votes

AppleScript JavaScript getElements

J'ai mon script qui fonctionne partiellement. J'utilise AppleScript pour script les interactions avec 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 j'entre un texte de plusieurs lignes dans le champ "ToSave", par exemple

    " here
    blabla 
    
    bla"

    alors je n'ai pas de texte et --> valeur manquante

  2. J'ai besoin de mettre un champ popup avant ce script, voici le HTML pour cela

    <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>

    et un autre :

    <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>

1voto

grg Points 181593

Le texte multiligne peut être réalisé en utilisant l'une des méthodes suivantes :

  • Séparez le texte par de nouvelles lignes, la première citation et la dernière citation encapsulant le contenu.

  • Utilisez \n comme nouvelle ligne.

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

Vous pouvez définir la valeur d'un élément de sélection en utilisant le JavaScript suivant

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

La valeur donnée est l'un des attributs de valeur des éléments d'option que vous souhaitez sélectionner.

0 votes

La première méthode est celle que j'utilise habituellement, mais ne fonctionnant pas dans ce cas, j'ai essayé la méthode \n à la place, mais même problème, pour une raison quelconque, cela ne fonctionne que lorsque j'entre une ligne (ou plusieurs lignes manuellement) pour le document.getElementById, puis-je faire mon nom à la place ? J'ai essayé votre code mais j'ai une erreur, j'ai aussi essayé d'exécuter l'onglet 1 de la fenêtre avant avec le javascript "document.getElementByName('0.3.8.1.5.0.4.1.5.0.6.1.3.7.3.1.3.1').value=1" mais la valeur est manquante.

0 votes

@Kevin Oui, vous pouvez utiliser n'importe quelle méthode qui renvoie un élément, donc n'importe quelle méthode 'getElement ' fonctionnera. Il n'existe pas de méthode 'getElementByName', vous devez utiliser 'getElementsByName' et indexer le tableau. Utilisez la console JS de Chrome pour déboguer votre JS avant de l'exécuter dans AppleScript.

0voto

Kevin Points 2006

Je le trouve (pour la deuxième question)

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

la valeur de l'index sélectionné est celle que vous voulez sélectionner dans le menu déroulant.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X