gpt4 book ai didi

javascript - puppeteer 师。无法在评估()中获取 Node 属性

转载 作者:行者123 更新时间:2023-12-02 23:36:59 24 4
gpt4 key购买 nike

如何找到一个不起眼的单选按钮元素并在 puppeteer 中单击它?

我看过很多文章说“只需使用evaluate(),然后单击它”或类似的内容,但这在我的场景中不起作用。

这是我所拥有的:

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);
}
}
});

我不知道该怎么办。值始终为空。

我需要知道它的才能知道是否点击它。我打算传入一个变量进行评估,然后根据该变量单击正确的变量。

如果我只是将 radio.click() 放入 for 循环中,它会单击每个元素并始终以选择的最后一个元素结束。所以我知道 click() 有效。如何确定要单击哪一个并选择它?

以下是 HTML 格式的 2 个单选按钮元素:

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

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

最佳答案

为什么不使用 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);
}
}
});

关于javascript - puppeteer 师。无法在评估()中获取 Node 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56247905/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com