首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Puppeteer.page.waitForSelector超时,即使存在元素

Puppeteer.page.waitForSelector超时,即使存在元素
EN

Stack Overflow用户
提问于 2022-03-24 18:08:08
回答 1查看 315关注 0票数 0

我正在运行以下代码:

代码语言:javascript
运行
复制
    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"版本。

那么,为什么木匠看不见这个元素呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-03-29 08:02:48

改变:

代码语言:javascript
运行
复制
const revisionInfo = await browserFetcher.download('576753');
const browser = await puppeteer.launch({
    executablePath: revisionInfo.executablePath,
    headless: false,
    ignoreHTTPSErrors: true,
    args: [
        '--no-sandbox',
        '--disable-setuid-sandbox'
    ]
});

致:

代码语言:javascript
运行
复制
const browser = await puppeteer.launch({
    headless: false,
    ignoreHTTPSErrors: true,
    args: [
        '--no-sandbox',
        '--disable-setuid-sandbox'
    ]
});

然后将整个项目的所有引用从puppeteer-core更改为puppeteer解决了这个问题。

此外,这种方法允许不经常跟踪最新的修订。木偶师将自动下载并使用正确的版本。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71607446

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档