Кукольник. Невозможно получить свойство узла вvalu () - PullRequest
0 голосов
/ 22 мая 2019

Как найти неописуемый элемент переключателя и щелкнуть его в кукловоде?

Я видел много статей, в которых говорилось: «просто используйте метод quote (), а затем щелкните по нему» или подобное, и это просто не работает в моем сценарии.

Вот что у меня есть:

page.on('console', consoleObj => console.log(consoleObj.text()));

await page.evaluate(() => {
    let container = document.getElementById('container');
    let options = container.getElementsByClassName('labels');

    // OPTIONS GIVES ME AN ARRAY OF JSHandle@node.

    if (options.length > 0) {
        for (let radio of options) {
            let value = radio.value;
            console.log(value);
        }
    }
});

Понятия не имею, что делать. значение всегда пусто.

Мне нужно знать его value, чтобы узнать, щелкнуть ли по нему или нет. Я намерен передать переменную для оценки, а затем щелкнуть правой кнопкой мыши на основе этой переменной.

Если я просто помещу radio.click() в цикл for, он работает так, что щелкает каждый из элементов и всегда заканчивается последним выбранным. Итак, я знаю, click() работает. Как я могу определить, Кого щелкнуть, и выбрать его?

Вот два элемента переключателя в формате HTML:

<input name="choice" value="accept" class="checkbox" type="radio">

<input name="choice" value="reject" class="checkbox" type="radio">

1 Ответ

1 голос
/ 22 мая 2019

Почему бы не использовать getElementsByName?

page.on('console', consoleObj => console.log(consoleObj.text()));

await page.evaluate(() => {
    let options = container.getElementsByName('choice');

    if (options.length > 0) {
        for (let radio of options) {
            let value = radio.value;
            console.log(value);
        }
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...