javascript - Puppeteer 页面不想完全在 headless (headless)模式下加载

标签 javascript node.js puppeteer chromium headless

这是我的代码:

// Open the browser
let browser = await puppeteer.launch({
    args: ["--no-sandbox"]
});
let page = await browser.newPage();

navPromise = page.waitForSelector('#js_boite_reception').then(() => {
    console.log('received');
});
await page.goto(entMessagesURL);
await navPromise;

// Wait 10 seconds, to be sure that is not because my connection is slow (it's not)
logger.log(`On the messages page (session=${username})`);
await delay(10000);

// Write an html file with the page content
let pageContent = await page.content();
require('fs').writeFileSync('./test.html', pageContent);

未显示已收到,并且出现超时错误。但是,如果我删除 waitForSelector 函数,并且只编写 test.html 文件,我们可以看到:

headless (headless)模式启用,部分页面未加载

headless mode en

headless (headless)模式已禁用,所有页面均已加载

Headless mode dis

使用 headless (headless)模式,仅加载部分页面内容。我不知道为什么。即使我添加一分钟的超时,它也不会加载更多...我能做什么?

注意:我尝试使用用户代理:

await page.setUserAgent("Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.157 Safari/537.36");

(在let page = wait browser.newPage()下)

最佳答案

await page.setUserAgent("Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.157 Safari/537.36");

这对我有用!我的网站在本地尝试时阻止了 headless (headless)模式。添加标题后,我终于找到了选择器。

关于javascript - Puppeteer 页面不想完全在 headless (headless)模式下加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59934853/

相关文章:

javascript - MySQL查询后无法运行js命令

javascript - 如何在网页上运行rtsp视频

javascript - 如何通过 Mongoose 中的 $inc 增加值(value)

node.js - 让 Puppeteer 等待给定的类出现/渲染在页面上?

javascript - 如何在前端将缓冲区转换为 pdf

javascript - 使用 Ajax 调用在服务器上实时更新页面

javascript - 如何拆分字符串中的字母字符和数字字符?

node.js - 创建一个空的 promise

javascript - 从数组中的元素修改空白元素

jestjs - 将 Jest 步骤定义提取到单独的文件