2017-08-21 1 views
5

J'essaie de faire de l'automation avec la nouvelle bibliothèque GoogleChrome/marionnettiste, mais je n'arrive pas à comprendre comment définir une valeur dans un champ select.Comment définir la valeur de select avec le nœud Puppeteer

fonction Voici mon (simplifié) pour définir la valeur d'une entrée de texte:

async function setInputVal(sel, text) { 
    await page.focus(sel)   
    page.press('Backspace') 
    page.type(text) 
} 

await setInputVal('input.searchjob', task.id) 

Je ne peux pas savoir comment faire la même chose pour un champ de sélection.

J'ai essayé de définir le focus, d'insérer un script et de l'exécuter, mais je n'arrive pas à le faire fonctionner.

Répondre

7

J'ai trouvé une solution moi-même:

async function setSelectVal(sel, val) { 
    page.evaluate((data) => { 
     return document.querySelector(data.sel).value = data.val 
    }, {sel, val}) 
} 

await setSelectVal('#select_id', 'newValue')