函数)"/>
无法在 Puppeteer 上查询选择器(类型错误:selector.startsWith 不是函数)
我安装了 Puppeteer 并想查询一个选择器来处理它。 但是我遇到了
TypeError: selector.startsWith is not a function
错误。
我试图通过添加
toString()
更改核心代码来修复它,但它没有用。
这是我试过的两种表达方式:
await page.$eval('#firstName', elem => elem.click());
await page.waitForSelector('#firstName');
两者均无效并产生相同的错误。
我还尝试安装旧的 puppeteer 和 node 版本,但仍然相同。 我该如何解决这个问题?
所有错误日志信息为:
file:///C:/Users/User/Desktop/mail/node_modules/puppeteer-core/lib/esm/puppeteer/common/GetQueryHandler.js:51
if (selector.startsWith(prefix)) {
^
TypeError: selector.startsWith is not a function
at getQueryHandlerAndSelector (file:///C:/Users/User/Desktop/mail/node_modules/puppeteer-core/lib/esm/puppeteer/common/GetQueryHandler.js:51:30)
at CDPElementHandle.$ (file:///C:/Users/User/Desktop/mail/node_modules/puppeteer-core/lib/esm/puppeteer/common/ElementHandle.js:74:51)
at IsolatedWorld.$ (file:///C:/Users/User/Desktop/mail/node_modules/puppeteer-core/lib/esm/puppeteer/common/IsolatedWorld.js:126:25)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async IsolatedWorld.focus (file:///C:/Users/User/Desktop/mail/node_modules/puppeteer-core/lib/esm/puppeteer/common/IsolatedWorld.js:186:24)
at async file:///C:/Users/User/Desktop/mail/index.js:17:5
我产生相同错误的完整代码示例是:
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch({headless: false});
const context = await browser.createIncognitoBrowserContext();
if (context) {
const page = await browser.newPage();
await page.goto(';cc=TR&dsh=S-519439412%3A1682412535258329&flowEntry=SignUp');
// Set screen size
await page.setViewport({width: 1080, height: 1024});
//await page.$eval('#firstName', elem => elem.click());
const username = await page.waitForSelector('#firstName');
await page.focus(username)
await page.keyboard.type('test54')
}
})();
回答如下:
您需要单击选择器
#firstName
所以只需更改
await page.focus(username);
到
await username.click();
这将解决错误,如果你想使用隐身,那么
const page = await browser.newPage();
应该是
const page = await context.newPage();
更多推荐
无法在 Puppeteer 上查询选择器(类型错误:selector.startsWith 不是函数)
发布评论