Applescript / Javascript: sélectionnez le menu

0

Je remplis une page Web avec Applescript / Javascript,

l'un d'eux est un menu déroulant, que je remplis avec ce code:

document.querySelector('select#reasonPopUpButton').value = '18';

le problème est le changement d'index de temps en temps.

Puis-je sélectionner le bon menu en utilisant le titre au lieu de l'index?

Voici ce que j'ai essayé jusqu'à présent:

tell application "Safari"
    do JavaScript "document.querySelector('select#reasonPopUpButton').value = 'Unauthorized purchase';" in current tab of window 1

end tell
Kevin
la source
Je voudrais essayer d'utiliser la propriété.innerText ou , par exemple.innerHTML document.querySelector('select#reasonPopUpButton').innerText = "Unauthorized purchase"; ...
user3439894
Merci pour votre réponse. J'ai essayé document.querySelector ('select # reasonPopUpButton'). InnerText = 'Achat non autorisé'; mais alors le menu déroulant devient petit sans valeur du tout à l'intérieur
Kevin
Que diriez - vous à la .innerHTMLplace, avez - vous obtenu les mêmes résultats? Pouvez-vous fournir l'URL réelle de la page sur laquelle se trouve le menu déroulant?
user3439894
idem, cela supprime toute l’option, seul l’index (.value = '18';) semble fonctionner. pire des cas, je vais le laisser comme ça, merci quand même
Kevin
Pouvez-vous fournir l'URL réelle de la page sur laquelle se trouve le menu déroulant?
user3439894

Réponses:

1

Vous pouvez filtrer la liste des options pour l'une avec le texte que vous recherchez, puis sélectionner celui-là. Ceci peut être réalisé avec le JavaScript suivant:

Array.from(document.querySelector('select#reasonPopUpButton').children)
  .find(el => el.textContent == "Unauthorized purchase")
  .selected = true;
grg
la source