Как установить значение выбора с помощью узла Puppeteer

Я пытаюсь выполнить некоторую автоматизацию с помощью довольно новой библиотеки GoogleChrome / puppeteer, но я не могу понять, как установить значение в поле выбора.

Вот моя (упрощенная) функция для установки значения ввода текста:

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

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

Я не могу понять, как сделать то же самое для выбранного поля.

Я попытался установить фокус, вставить скрипт и выполнить, но не могу заставить его работать.


person BrendanMullins    schedule 21.08.2017    source источник
comment
Как продолжение: у кукловода есть первоклассный API для этого прямо сейчас.   -  person browserless    schedule 30.05.2018
comment
связано - выберите вариант из раскрывающегося списка   -  person vsync    schedule 20.08.2018


Ответы (2)


Вы можете использовать page.select() для select и option :

await page.select('select#example', 'carrot');
person Grant Miller    schedule 31.07.2018

Я сам нашел решение:

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

await setSelectVal('#select_id', 'newValue')
person BrendanMullins    schedule 21.08.2017