这是我的代码:
// 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);
Run Code Online (Sandbox Code Playgroud)
将received不显示,我得到一个超时错误。但是,如果我删除 waitForSelector 函数,并且只写入test.html文件,我们可以看到:
在无头模式下,仅加载部分页面内容。我不知道为什么。即使我添加一分钟的超时,它也不会加载更多......我该怎么办?
注意:我尝试使用用户代理: …
我正在制作一个打字稿 npm 包。
它使用discord.js,但
discord.js有两个主要版本:
*
discord.js 11.5 * discord.js v12.0.0-dev
我希望我的模块支持这两个版本。我的意思是,用户可以安装他们想要的 discord.js 版本,并且包将使用好的代码。
对于另一个项目,在 javascript (没有打字稿)中,我使用这个:
const { version } = require("discord.js");
if(version === "12.0.0-dev"){
// code for v12
} else {
// code for v11
}
Run Code Online (Sandbox Code Playgroud)
它完美无缺。但是,对于打字稿,由于打字,它更加复杂。事实上,discord.js 类型在 v11 和 v12 中是不一样的,所以我不能用两个版本编译代码:
const { Guild, version } = require("discord.js");
if(version === "12.0.0-dev"){
Guild.iconURL(); // for v12
} else {
Guild.iconURL; // for v11
}
Run Code Online (Sandbox Code Playgroud)
如果安装了V12,它会抛出iconURL() doesn't exist on Guild,如果它是V11, iconURL doesn't exist on Guild …
javascript ×2
node.js ×2
chromium ×1
discord.js ×1
headless ×1
puppeteer ×1
types ×1
typescript ×1