我正在运行以下代码:
const browserFetcher = puppeteer.createBrowserFetcher();
//revision corresponds to Chrome 69.0.3497.92
const revisionInfo = await browserFetcher.download('576753');
const browser = await puppeteer.launch({
executablePath: revisionInfo.executablePath,
headless: false,
ignoreHTTPSErrors: true,
args: [
'--no-sandbox',
'--disable-setuid-sandbox'
]
});
const page = await browser.newPage();
await page.goto(link, { waitUntil: 'networkidle2' });
await page.waitForSelector('button.btn-primary', { visible: true });
const thisLineIsNeverReached = 0;
问题是从未到达const thisLineIsNeverReached = 0;
行,而Puppeteer抛出一个错误,说明'button.btn-primary'
选择器超时。
我检查了指定的元素确实存在于页面中:
我正在使用"puppeteer": "11.0.0"
版本。
那么,为什么木匠看不见这个元素呢?
发布于 2022-03-29 08:02:48
改变:
const revisionInfo = await browserFetcher.download('576753');
const browser = await puppeteer.launch({
executablePath: revisionInfo.executablePath,
headless: false,
ignoreHTTPSErrors: true,
args: [
'--no-sandbox',
'--disable-setuid-sandbox'
]
});
致:
const browser = await puppeteer.launch({
headless: false,
ignoreHTTPSErrors: true,
args: [
'--no-sandbox',
'--disable-setuid-sandbox'
]
});
然后将整个项目的所有引用从puppeteer-core
更改为puppeteer
解决了这个问题。
此外,这种方法允许不经常跟踪最新的修订。木偶师将自动下载并使用正确的版本。
https://stackoverflow.com/questions/71607446
复制相似问题