2017-09-28 2 views
0

J'utilise le chrome sans tête avec la bibliothèque de marionnettiste nodejs principalement. Je rencontre des difficultés pour sélectionner ou cliquer sur les options dans une liste déroulante. Le problème est que tous les ID sont dynamiques et changent à chaque clic. J'ai essayé de gratter le HTML et de chercher l'identifiant actuel, mais en vain.Puppeteer Chrome Headless sélectionnez l'option de la liste déroulante sans ID

Existe-t-il un autre moyen de sélectionner une option? Est-il possible d'utiliser un autre sélecteur en plus de l'identifiant?

The code for the drop down

note pour l'image: où il est dit 'homestate-aria-id-7' le numéro 7 est généré dynamiquement

Répondre

0

Je ne suis pas sûr que je suis complètement suivais la raison que d'avoir une dynamique ID créé entraînerait des problèmes. Voici un exemple de comment j'ai résolu le problème et en utilisant un sélecteur pour votre code ci-dessus.

page.evaluate(optionSelector => { 
    return document.querySelector(optionSelector).setAttribute('selected, 'true'); 
}, 'select[name="homeState"] > option[value="AL"]');