Как я могу сделать скриншот пользовательской URL-страницы и отправить ее обратно в канал?

#javascript #node.js #discord #discord.js #puppeteer

Вопрос:

Я пытаюсь сделать скриншот с помощью puppeteer и отправить его обратно в канал, где была набрана команда. В любом случае, я не могу этого сделать, поэтому, пожалуйста, помогите мне.

 const Discord = require("discord.js");
const fetch = require('node-fetch');
const cheerio = require("cheerio");
const puppeteer = require('puppeteer');
const client = new Discord.Client();


module.exports =  {


  async run(client, message, args) {
    const browser = await puppeteer.launch();

    const url = message.client;
    const page = await browser.newPage();
    await page.goto(url);
    
    console.log(await page.content());
    await page.screenshot({path: 'screenshot.png'});

    let screenshot = await page.screenshot(); 
    await browser.close();

    message.channel.send("Screenshot", {files: [screenshot]});
    }
    
  }
 

Ответ №1:

Похоже, вы, возможно, допустили опечатку.

 const url = message.client;
 

вероятно, должно быть

 const url = message.content; // or something similar?
 

message.client является Client объектом, и даже в виде строки, является [object Object] . Это недопустимые URL-адреса.

В результате UnhandledPromiseRejectionWarning в консоль должен был войти файл, в котором указывалось, что URL-адрес не может быть десериализован.

Вы должны проверить URL-адрес или обнаружить ошибки в вашей команде в случае недопустимых URL-адресов.

Комментарии:

1. Спасибо, я постараюсь.