gpt4 book ai didi

javascript - puppeteer 师 - 错误 : Evaluation failed: ReferenceError: TABLE_ROW_SELECTOR is not defined

转载 作者:行者123 更新时间:2023-12-03 08:45:05 40 4
gpt4 key购买 nike

enter image description here

我正在开始使用 pupeteer 和 Node,并使用 vscode。我正在尝试登录网站并抓取表格。到目前为止我已经:

(async () => {

const browser = await puppeteer.launch({
headless: false,
});
var page = await browser.newPage();
await page.goto('thesite.com/login/');

await page.click(USERNAME_SELECTOR);

await page.keyboard.type(CREDS.username);

await page.click(PASSWORD_SELECTOR);
await page.keyboard.type(CREDS.password);

await page.click(BUTTON_SELECTOR);
await page.waitForNavigation();

const TABLE_ROW_SELECTOR = '.gv-container.gv-container-133 > table > tbody';
await page.waitForSelector(TABLE_ROW_SELECTOR);

await page.waitForSelector(TABLE_ROW_SELECTOR);


await page.screenshot({ path: 'example.png' });
const data = await page.evaluate(() => document.querySelectorAll(TABLE_ROW_SELECTOR));




await browser.close();
})();

这基本上是有效的。该脚本似乎执行到:

const data = await page.evaluate(() => document.querySelectorAll(TABLE_ROW_SELECTOR));

标题中给出了错误。上面的屏幕截图没有显示屏幕截图位置下方的表格。当我输入

document.querySelectorAll(TABLE_ROW_SELECTOR));

进入 devtools 控制台,我得到了预期的 html。我做错了什么?

编辑:

在我的控制台中,我看到一个对象列表,但据我所知,没有任何值。这是第一个对象

0:Object {}
__proto__:Object {constructor: , __defineGetter__: , __defineSetter__: , …}
__defineGetter__:function __defineGetter__() { … }
__defineSetter__:function __defineSetter__() { … }
__lookupGetter__:function __lookupGetter__() { … }
__lookupSetter__:function __lookupSetter__() { … }
constructor:function Object() { … }
hasOwnProperty:function hasOwnProperty() { … }
No debug adapter, can not send 'variables'
isPrototypeOf:function isPrototypeOf() { … }
No debug adapter, can not send 'variables'

“没有调试适配器,无法发送‘变量’”是什么意思?

最佳答案

page.evaluate() 的函数参数在文档(浏览器)上下文中执行,并且无法访问 Node.js 脚本的变量。您需要按值传输这些变量:

const data = await page.evaluate(SELECTOR => document.querySelectorAll(SELECTOR), TABLE_ROW_SELECTOR);

关于javascript - puppeteer 师 - 错误 : Evaluation failed: ReferenceError: TABLE_ROW_SELECTOR is not defined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61802749/

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