const puppeteer = require('puppeteer')
async function test() {
// adjustment 1:
const browser = await puppeteer.launch({
headless: false,
defaultViewport: null,
args: ['--start-maximized', '--no-sandbox']
});
const page = await browser.newPage();
await page.goto('https://cod.tracker.gg/warzone/profile/psn/xRUFFRYDERX/overview')
await page.waitForSelector('#app > div.trn-wrapper > div.trn-container > div > main > div.content.no-card-margin > div.site-container.trn-grid.trn-grid--vertical.trn-grid--small > div:nth-child(2) > div > div.trn-grid__sidebar-right > div > div');
const level = await page.$eval('#app > div.trn-wrapper > div.trn-container > div > main > div.content.no-card-margin > div.site-container.trn-grid.trn-grid--vertical.trn-grid--small > div:nth-child(2) > div > div.trn-grid__sidebar-right > div > div > div.highlighted.highlighted--giants > div > div > div.highlight-text')
console.log(level);
}
test();
我正在尝试创建一个COD跟踪器远程工具,但仍然收到以下错误,我认为它无法将级别变量解释为字符串,但是我不确定为什么?
(node:20216) UnhandledPromiseRejectionWarning: Error: Expected to get |string| or |function| as the first argument, but got "undefined" instead.
答案 0 :(得分:0)
您错过了page.$eval
的整个pageFunction
:
page。$ eval(selector,pageFunction [,... args])
要检索其内容,您需要将其添加为第二个参数,例如:el => el.innerText
。
注意:我对您的长选择器进行了一些修剪,但是无论如何它将返回相同的结果。
const level = await page.$eval('div.highlight-text', el => el.innerText)