这是我的代码:
// 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 (headless)模式已禁用,所有页面均已加载
使用 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/